CVE-2013-4547(nginx文件名逻辑漏洞)

0x00 前言

这个漏洞是在看文件解析的时候看到了,有点相关性,于是来复现一下。

影响版本

Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

原理

这里的原理就是说如果访问1.gif[0x20][0x00].php,也是会满足解析条件。
那么如果我们上传1.gif[0x20],并且去访问1.gif[0x20][0x00].php,Nginx会认为访问的是1.gif[0x20],最后丢到fastcgi,fastcgi根据获取的值,发现1.gif[0x20][0x00].php满足解析条件,就跑去解析了。

0x01 复现

1.环境搭建

这里使用vulnhub环境
目录:vulhub-master/nginx/CVE-2013-4547

2.过程演示

首先访问目标页面发现是一个上传文件的地方
CVE-2013-4547(nginx文件名逻辑漏洞)_第1张图片
首先正常上传一个png,png的内容如下


上传成功之后进行访问
http://192.168.25.243:8080/uploadfiles/1.pngphp
然后burp进行抓包,修改hex,在如下图所在的位置增加20,00,2e,这三个分别代表着‘ ’,’\0’ ,‘.’。
CVE-2013-4547(nginx文件名逻辑漏洞)_第2张图片
修改好后如下图
CVE-2013-4547(nginx文件名逻辑漏洞)_第3张图片
成功解析
CVE-2013-4547(nginx文件名逻辑漏洞)_第4张图片

你可能感兴趣的:(web安全)