文件包含漏洞与文件包含Bypass漏洞基础

SSRF漏洞之常见Bypass篇 SSRF–(Server-side Request Forge, 服务端请求伪造) 定义:由攻击者构造的攻击链接传给服务端执行造成的漏洞,一般用来在外网探测或攻击内网服务 SSRF漏洞思维导图如下,本篇主要介绍利用SSRF Bypass利用原理与方式 SSRF漏洞形成的原因主要是服务器端所提供的接口中包含了所要请求的内容的URL参数,并且未对客户端所传输过来的URL参数进行过滤 一般的防御措施是对URL参数进行过滤,或者使得URL参数用户不可控,但当过滤方法不当时,就存在Bypass的不同方式 通过CTF 阅读详情

0x01 什么是文件包含漏洞

服务器通过PHP的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到攻击的目的。

2

0x02 漏洞产生的根本原因

在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件(即恶意文件) 。

3

0x03 是不是只有PHP才有文件包含漏洞

很显然不是,只是文件包含漏洞比较常出现在PHP当中,而且文件包含漏洞在PHP Web Application中居多。几乎所有脚本语言都会提供文件包含的功能,只是在JSP、ASP、ASP.NET程序中却非常少见,甚至没有,这就是语言设计中的弊端。

4

0x04 文件包含漏洞的类型

本地文件包含漏洞(LFI)

网站服务器本身存在恶意文件,然后利用本地文件包含使用。

利用条件:

(1)allow_url_fopen=On

(2)用户可以动态控制变量

远程文件包含漏洞(RFI)

调用其他网站的恶意文件进行打开。

利用条件:

(1)allow_url_include=On&&allow_url_fopen=On(两个选项同时开启)

(2)用户可以动态控制变量

注1:通常我们在Web中是无法知道allow_url_fopen、allow_url_include的,除非有phpinfo。通常本地包含都是开着的,因为它是默认开启的,而且很少人会改它。通常远程包含会被关掉,但是这说不准。

注2:从PHP 5.2开始allow_url_include就默认为Off的,而allow_url_fopen一直默认都是On的。通常开发人员没特殊情况也不会打开,所以说远程包含漏洞出现的概率很低,但是不代表没有。

5

0x05 常见的文件包含函数(白盒测试的时候需要用到)

PHP:Include()、Require()、Include_once()、Require_once()

ASP:include file()、include virtual()

JSP/Servlet:ava.io.file()、java.io.filereader()

注1:当白盒测试的时候,就可以对代码进行全局搜索,看是否用以上函数,若存在以上函数,那么判定可能存在文件包含漏洞,接着进一步测试。

注2:通常开发人员会比较少用带once的那两个函数,因为它会消耗更多的资源去做检测的工作。

注3:我特意问了一下PHP开发的同事,询问他们以上函数哪些函数用得最多,最后得到统一回复:没有所谓的用得最多,只有根据项目情景使用。

6

0x06 如何挖掘文件包含漏洞

从URL上观察关键词page、filename、file、path、dir等等,与文件相关的字眼/关键词,都可能存在文件包含漏洞。当然看过我目录遍历漏洞总结的文章也知道,这里的关键字眼可能会非常类似,甚至可以说一样。所以在挖掘方法上,手法类同。

7

0x07 如何利用文件包含漏洞

(1) PHP伪协议

• php://input(接收POST过来的值)

利用条件:

A. allow_url_include=On

B. allow_url_fopen=On

C. PHP版本小于5.3.0

利用姿势:

• php://filter

利用条件:

allow_url_fopen=On、allow_url_include不做要求

利用姿势:

index.php?file=php://filter/read=convert.base64-encode/resource=index.php

通过指定末尾的文件,可以读取经base64加密后的文件源码。届时在base64解码即可读取敏感文件。(不能直接获取shell,危害性一般,但是能读取敏感文件,从某个角度上说,危害还是挺大的。)

• phar://

利用条件:

PHP版本大于等于5.3.0

利用姿势:

将内容为一句话木马的1.txt压缩成1.zip,然后指定绝对路径,如下:

index.php?file=phar://D:phpstudyPHPTutorialWWW.zip.txt //绝对路径

index.php?file=phar://1.zip/1.txt //这里1.zip就和index.php同目录下

• zip://

利用条件:PHP版本大于等于5.3.0

利用姿势:

index.php?file=zip://D:phpstudyPHPTutorialWWW.zip%231.txt

注:使用zip伪协议的方法与phar大致相同,但是zip伪协议不能使用相对路径,否则会包含失败。而且这里要将#编码为%23。

• data:URL schema

利用条件:

A. PHP版本大于等于5.2

B. allow_url_fopen=On

C. allow_url_include=On

利用姿势:

index.php?file=data:text/plain,

index.php?file=data:text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b注:加号+的URL编码为%2b,这里利用base64解码,常用于绕过。原本这一点我这里不太想写的,因为利用条件严苛,能满足这个条件那还不如直接利用远程文件包含漏洞。但是,这个有利于绕WAF,所以还是拿出来描述。

(2) 包含上传文件

利用条件:

上传文件的绝对路径以及文件名称

注:利用姿势这里没法提,要提的话,又能出一文章了。有时候文件上传遇到白名单检测,那么我们上次的图片马又无法配合解析漏洞,恰好这时候又有文件包含漏洞的话,那么就能利用组合拳getshell了。

注:以上列出的两大点是文件包含常用姿势,其它很少用的我就不一一列出,因为本文也是自己的学习总结,我觉得像包含session、包含日志、包含environ等等这些姿势很少用到,所以这里不描述,但是我是有印象的,当我以后用到的时候,再回头仔细研究,否则现在学了一遍,很久没用过也是会忘记。

如果想全面了解,这里推荐看前辈总结的几篇文章

https://chybeta.github.io/2017/10/08/php%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB%E6%BC%8F%E6%B4%9E/

https://www.freebuf.com/articles/web/182280.html

8

0x08 漏洞造成的危害

\1. 严重的能写入恶意文件从而Getshell

\2. 任意读取文件导致的敏感信息泄露

注:该漏洞本身的危害程度有限,但是如果配合起文件上传,其危害程度巨大。

9

0x09 如何防范此漏洞

\1. 对文件进行严格的权限管理;

\2. 过滤危险字符,如../、~/等;

\3. 通过白名单策略,只允许包含运行指定的文件。(本人觉得此方式最妥当)如下:

这一串代码就写死了当变量file不等于include.php的时候,就会输出错误提示,文件未被发现。这种方式在我看来基本能够杜绝此漏洞出现,当然不排除是我水平不够找不到方法的原因。

知

识

补

充

phar://和zip://的区别:

phar://

可以查找指定压缩包内的文件,可传绝对路径,也可传相对路径。

zip://

用法与phar类似,不过有两点要注意,只能传入绝对路径,要用#分隔压缩包和压缩包里的内容,并且#要用url编码%23。

**PS:**以上是我在学习和实践后的总结,纯属个人看法,若有不足之处,欢迎各位在评论区中指出。

常见的绕过思路:

★

有限制的本地文件包含绕过

(指定了后缀)

★

1

0x01 %00截断

前提条件:

PHP < 5.3.4、magic_quotes_gpc=Off

利用姿势:

?Path=../../../../etc/passwd%00

2

0x02 路径长度截断

前提条件:PHP<5.2.8

利用姿势:

?File=flag.txt/./././././././././././././././././././

注:在Linux下4096字节时会达到最大值,在Windows下256字节时会达到最大值。只要不断重复./ 。

3

0x03 点号截断

前提条件:

PHP<5.2.8,只适用于Windows操作系统

利用姿势:

?File=flag.txt...............................................................

以上利用姿势,基本在PHP 5.3版本之后都失效了。在版本之后有什么截断方法吗?这里我看到前辈的一篇文章,介绍一种伪截断的方式来实现文件截断的。

**注:**以下思路摘自

https://www.jianshu.com/p/fb054a6fd851

★

有限制的远程文件包含绕过

(指定了后缀)

★

4

0x04 问号截断

前提条件:

未知,PHP>5.3的都可以尝试。

利用姿势:

?File=http://localhost/phpinfo.txt?

注:其原理是WebServer?后面的内容当作请求的参数,而phpinfo.txt不在WebServer里面解析,从而使用问号来实现伪截断。

5

0x05 #号绕过

前提条件:

未知,PHP>5.3的都可以尝试。

利用姿势:

?File=http://localhost/phpinfo.txt#

6

0x06 空格绕过

前提条件:

未知,PHP>5.3的都可以尝试。

利用姿势:

?File=http://localhost/phpinfo.txt%20

7

0x07 利用伪协议绕过

前提条件:无

利用姿势:

?File=

zip://D:phpstudyWWWileincludechybeta.zip%23chybeta

这里要事先将phpinfo压缩好噢!不懂的可以看基础篇。

**注:**图片及思路摘自

https://chybeta.github.io/2017/10/08/php%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB%E6%BC%8F%E6%B4%9E/

绕WAF的奇淫技巧

绕WAF的姿势各种各样,我在这里也没法和大家说出一个详细方案,毕竟在绕WAF的道路上,通常都需要自己记录观察WAF的过滤规则,以下只是自己的一些心得。

相信各位师傅们在挖掘文件包含漏洞时会遇到WAF过滤../、~/、read、以及一些特殊符号等等,像单引、双引、#号等等。不仅仅是在挖掘文件包含漏洞才遇到,挖注入、XSS、RCE等等,相信都会遇到过吧。每一个厂商的WAF的过滤规则都不一样,具体还是要通过观察得出。

0x01 ../和..绕过

利用URL编码:如%2e%2e%2f / %2e%2e%5c、..%2f / ..%5c等等

利用二次编码:在一次URL编码基础上再进行编码

如:%252e%252e%252f / %252e%252e%255c

0x02 贪婪包含

场景:index.php?img=1.jpg

前提条件:未知

利用姿势:

Index.php?=img=php://filter/resource=../flag.php|jpg

(此利用姿势出自某CTF的题目)

0x03 通配符绕过

这里关于通配符绕过的姿势未知,我也查阅了一些文章,但是总结不到什么骚姿势出来,待定着吧。若是师傅们知道的,多多指导。

0x04 Base64编码绕过

利用姿势:

?file=php://filter/convert.base64-encode/resource=index.php

0x05 使用data伪协议读取文件

前提条件:allow_url_include=On

利用姿势:

file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOyA/Pg==

知识总结

\1. 能利用00截断的场景有限,根据情况尝试使用。

\2. 使用PHP伪协议对于绕WAF的效果更好。

\3. 大多数文件包含漏洞都是需要截断的。

\4. PHP 5.3版本之后全面修复了%00截断的问题。

\5. 在URL中使用问号(?)、井号(#)可能会影响include包含的结果。

\6. 总之有事没事就使用%00截断试试看吧,嘻嘻。

华为ENSP完整安装教程 阅读详情

相关推荐

【STM32F042】使用NTC热敏电阻实现温度测量

1.NTC介绍 NTC是负温度系数的简写,全称是Negative temperature coefficient.意思是随着温度的升高,电阻值呈现下降趋势。常用作温度传感器。这里有一个式子表示负温度系数的电阻值: RT=R0*exp(B (1/T-1/T0)) RT为周围温度为T (K) 时的电阻值,R0是周围温度为T0(K) 时的电阻值,注意这里的温度是开...

BadBoyHolly的博客 3万+

网络安全学习笔记——代码执行漏洞bypass

这条命令使用了两个管道,利用第一个管道将 cat 命令(显示 passwd 文件的内容)的输出送给grep 命令,grep 命令找出含有“/bin /bash”的所有行。Linux 所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。使用内联执行会将 ``内的输出作为前面命令的输入,当我们输入上述 payload时,等同于 cat falg.php;操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的。

just do it 375

SAP 人力资源工资配置项3---工资项配置

工资项设置

xiouluoyang的专栏 1万+

命令执行漏洞bypass

$IFS $IFS$1 $IFS$9 ${IFS} {ls, -al} < <> %20 %09 cmd=$'\x20test.txt'&&cat$cmd 二、命令分隔符绕过 %0a %0d ; & && | || 三、敏感词汇绕过 (1)拼接: a=l;b=s;$a$b //拼接成ls (2)base64绕过: `echo 'Y2F0Cg==' | base64 -d` test.tx

weixin_45942044的博客 464

海康威视 2DC 系列球机手机直连实用教程

海康威视2DC系列球机手机直连教程:首先确认设备支持直连功能并下载官方"海康互联"App;通过网线连接球机与路由器,使用SADP软件调整IP至同一网段;在App中添加设备并激活,完成调试即可远程查看监控画面。常见问题包括部分型号需远程解锁、网络连接异常等,可通过检查网络环境、联系客服等方式解决。本教程提供从准备到连接的完整指引,助您轻松实现手机监控管理。

海康威视技术支持 5405

CocosCreator | 自定义启动页之H5

01 效果对比 默认启动页: 自定义启动页: 02 启动页存在的意义 我们在 creator 中的开发的游戏都是基于 cocos engine,所以在展示我们的游戏之前,是必须要先加载 cocos engine,然后才是我们自己的业务代码 流程图如下: 而构建完成后未精简的 cocos engine 代码为 1.9M 如果再加上物理相关代码的话,一共是2M 别忘了,我们自己的首场景也要加载过程哦 所以,从游戏启动,到真...

Valiancer 5896

PHP文件包含漏洞实战:从协议利用到高级Bypass技巧

本文深入解析PHP文件包含漏洞的实战技巧,从基础认知到高级Bypass手法,涵盖伪协议利用、日志污染和Phar反序列化等攻击方式。通过真实案例演示如何绕过常见防御措施,帮助安全人员全面理解漏洞原理与防护策略,提升渗透测试能力。

weixin_30736301的博客 295

vietjetair 航空的webpack多参数生成学习

工作内不是特别多,居安思危,有一个抓机票信息的公司面试前竟然需要做面试题,这就是一个题。看了下,有点麻烦,webpack 最初不得要领,看了下资料,找了个框架,练了两个简单的,搞这个吧。入库需要自己找,有几个参数不是明文的,算法不是很复杂,位置不太好找。整体难度一般。

liu_yueyang的博客 1510

PHP文件包含漏洞利用思路与Bypass总结手册(三)

绕过姿势我们平常很多时候碰到的情况肯定不会是简单的include $_GET['file'];这样直接把变量传入包含函数的。在很多时候包含的变量/文件不是完全可控的。现在...

蚁景网安学院 764

MIPI信号的分析--结合示波器实际测试波形

如果排查的思路对你有帮助,请记住 消雨匆匆 or 大吊工。码字和排查很累,仅此而已 ,硬件不是抄电路,拿烙铁,懂点软件,细致分析,找问题和破案搜集线索是一样的。 部分内容来自于此博客的大神总结: http://www.elecfans.com/news/wangluo/20170323499614.html http://www.elecfans.com/yuanqijian/jieko...

消雨匆匆 4万+

基于STM32F4XX 、HAL库的SHT40-CD1B-R3温湿度传感器驱动应用C语言程序设计

define SHT40_ADDR_READ 0x8B // CD1B 读地址 ((0x45 << 1) + 1)#define SHT40_ADDR_WRITE 0x8A // CD1B 写地址 (0x45 << 1)// 初始化 I2C1 (根据 CubeMX 生成的函数)// 湿度: -6%RH + 125%RH * (raw / 2^16)// 温度: -45°C + 175°C * (raw / 2^16)// 返回值: 0=成功, 1=失败(CRC错误或I2C通信错误)

PP_Cottage的博客 236

PHP文件包含漏洞利用思路与Bypass总结手册(一)

这个手册主要是记录针对PHP文件包含漏洞的利用思路与Bypass手法的总结。

蚁景网安学院 5015

SAP-ABAP:FI财务会计模块常用BAPI及核心用途实例说明

SAP FI模块的BAPI覆盖了从主数据管理、凭证过账到财务关账的全流程操作,是系统集成与自动化的重要工具。实际应用中需结合业务场景选择合适的BAPI,并严格遵循事务控制与校验规则。如需扩展功能,可通过BAdI或用户出口增强标准逻辑。

baidu_35680696的博客 1601

PHP文件包含漏洞利用思路与Bypass总结手册(完结)

Bypass-Session限制LFI-Base64Encode很多时候服务器上存储的Session信息都是经过处理的(编码或加密),这个时候假如我们利用本地文件包含漏洞直接包含恶意se...

蚁景网安学院 1115

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

fopen打开ftp文件_PHP文件包含漏洞利用思路与Bypass总结

相关函数四个函数php中引发文件包含漏洞的通常主要是以下四个函数:1、include()http://www.php.net/manual/en/function.include.php2、include_once()http://php.net/manual/en/function.include-once.php3、require()http://php.net/manual/en/funct...

weixin_39653361的博客 320

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

PHP文件包含漏洞利用思路与Bypass总结手册(二)

接上一篇:PHP文件包含漏洞利用思路与Bypass总结手册(一)包含Session在了解session包含文件漏洞及绕过姿势的时候,我们应该首先了解一下服务器上针对用户会话session...

蚁景网安学院 638

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

.pub是什么文件_PHP文件包含漏洞利用思路与Bypass总结手册(三)

作者:Qftm合天智汇绕过姿势我们平常很多时候碰到的情况肯定不会是简单的include $_GET['file'];这样直接把变量传入包含函数的。在很多时候包含的变量/文件不是完全可控的。现在代码常做的限制有这些:1、指定前缀2、指定后缀3、协议限制4、allow_url_fopen=OffBypass-指定前缀测试代码:一般情况下,这种前缀也是很常见的,限制用户访问www服务外的其他文件。下面就...

weixin_40002009的博客 462

fopen打开ftp文件_PHP文件包含漏洞利用思路与Bypass总结手册(一)

作者:Qftm 合天智汇前言这个手册主要是记录针对PHP文件包含漏洞的利用思路与Bypass手法的总结。相关函数四个函数php中引发文件包含漏洞的通常主要是以下四个函数:1、include()http://www.php.net/manual/en/function.include.php2、include_once()http://php.net/manual/en/function.inclu...

weixin_39943586的博客 357

php function curl token_PHP文件包含漏洞利用思路与Bypass总结手册(一)

前言这个手册主要是记录针对PHP文件包含漏洞的利用思路与Bypass手法的总结。相关函数四个函数php中引发文件包含漏洞的通常主要是以下四个函数:1、include()http://www.php.net/manual/en/function.include.php2、include_once()http://php.net/manual/en/function.include-once...

weixin_39627751的博客 227

centos 阿帕奇无法解析php_PHP文件包含漏洞利用思路与Bypass总结手册(二)

作者:Qftm 合天智汇接上一篇:https://www.toutiao.com/i6819918030252802571/包含Session在了解session包含文件漏洞及绕过姿势的时候,我们应该首先了解一下服务器上针对用户会话session的存储与处理是什么过程,只有了解了其存储和使用机制我们才能够合理的去利用它得到我们想要的结果。Session存储存储方式Java是将用户的session存...

weixin_39838758的博客 254
上一篇: 主流WEB漏洞扫描器种类及其指纹特征分析
下一篇: 网站渗透思路总结
gool奇米
博客等级 码龄4年 16粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值