Nginx解析漏洞~CVE-2013-4547漏洞分析

在这里插入图片描述

Nginx解析漏洞

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

CVE-2013-4547

此漏洞为文件名逻辑漏洞,该漏洞在上传图片时,修改其16进制编码可使其绕过策略,导致解析为php。当Nginx得到一个用户请求时,首先对url进行解析,进行正则匹配,如果匹配到以.php后缀结尾的文件名,会将请求的PHP文件交给PHP-CGI去解析。

# 影响版本
Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

利用姿势

步骤一:使用以下命令启动靶机并通过浏览器访问靶场页面…

# 启动靶场
cd vulhub-master/nginx/CVE-2013-4547 //切换到靶机目录
vim docker-compose.yml //删除第一行代码
docker-compose build //创建环境
docker-compose up -d //打开环境
docker-compose ps -a //查看端口
# 靶场页面
http://http://192.168.66.131:8080/
# info.php
<?php phpinfo();?>

步骤二:直接上传 info.php 被拦截…修改文件后缀为.jpg进行上传且在后面添加空格;上传成功…

image-20240801165813433

步骤三:在.jpg后面添加两个空格并给上 .php 后缀,在16进制修改中将原本连个空格的 0x20 0x20 修改为如下即 0x20 0x00 进行发包…

image-20240801170429157

image-20240801171531041

步骤四:访问上传后的文件…由于url会将其编码,需要继续抓包修改 0x20 0x20 为 0x20 0x00

http://101.42.118.221:8080/uploadfiles/info.jpg%20%20.php
备注:这里在BP中需要将原来的%20%20删除,改成两个空格方便修改

image-20240801171900160

image-20240801171837764
好小子,离成功又近一步!!!

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值