Nginx 文件名逻辑漏洞(CVE-2013-4547)
今天尝试了一下CVE-2013-4547这个解析漏洞,按部就班测试的时候发现并没有像部分教程中提到的那样直接解析,大部分是报错信息No input file specified 或者 文件不存在,看了很多文章以及进行过多次尝试后,终于成了,以下为实验步骤:
**
## 实验步骤:
Nginx 文件名逻辑漏洞(CVE-2013-4547)
1.创建文件 ccc.gif
2.burp抓包 ,文件名后加 ccc.gif[空格]
3.网站提示成功 File uploaded successfully: /var/www/html/uploadfiles/ccc.gif
4.访问:http://192.168.0.110:8080/uploadfiles/ccc.gif
404错误
.
## 重新尝试:
1.上传ccc.gif 不改包 File uploaded successfully: /var/www/html/uploadfiles/ccc.gif
2.重新上传 并抓包添加空格
3.访问http://192.168.0.110:8080/uploadfiles/ccc.gif
添加空格 修改hex文件
4.网页成功解析php
## 重复测试:
1.上传文件ddd.gif 不做修改
2.访问网站 是否上传成功,http://192.168.0.110:8080/uploadfiles/ddd.gif
3.修改网址 burp抓包
http://192.168.0.110:8080/uploadfiles/ddd.gif[空格][空格].php
4.burp 修改 GET /uploadfiles/ddd.gif .php HTTP/1.1
5.hex修改 20 20 2e --> 20 00 2e
结果:No input file specified.
## 修改并继续:
1.重新上传文件,并添加空格ddd.gif[空格]
2.访问网站,是否上传成功
3.修改文件名添加空格 修改hex 20 00 2e
4.网页成功解析php
## 注意事项:
1.部分浏览器自动将url输入的空格转码为url编码%20 ,请用burp抓包后重新改为[空格][空格]
2.修改文件后缀名修改的前提是文件中有可以访问的文件,例如上传a.jpg,直接修改是不成功的,
上传后确认文件存在,回退到上传网页,继续上传并抓包修改a.jpg[空格][空格].php,成功
3.在偶然间测试时发现,burp修改a.jpg处,添加一个空格a.jpg[空格].php也可以成功,省去修改hex那一步骤。
## 结尾:
新手向文章,文笔不好,适用于和我遇到同样问题的小伙伴们!