[CVE-2013-4547]Nginx 文件名逻辑漏洞复现

CVE-2013-4547是Nginx中间件的一个文件名解析漏洞


影响版本:

2013年底,nginx再次爆出漏洞(CVE-2013-4547),此漏洞可导致目录跨越及代码执行,

其影响版本为: Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7,范围较广。


利用原理:[20][00]绕过nginx逻辑验证


利用方式:

1、docker-compose up -d
2、1.jpg内容为:,上传抓包1.jpg,把1.jpg改为1.jpg[20]
3、访问地址:http://127.0.0.1/uploadfiles/1.jpg抓包
改为http://127.0.0.1/uploadfiles/1.jpg[20][00].php发现漏洞利用成功

注明:在Windows环境下由于命名文件时不允许文件后缀末尾存在空格所以自动将其修复为1.jpg,这种情况下我们只需要上传一张包含代码的名字为1.jpg的文件就可以利用漏洞了。但是在Linux情况下情况就不一样了。在Linux环境中由于允许文件后缀名最后存在空格所以我们需要确保我们传过去的文件名为1.jpg[20]


tips:linux下应该是难利用 因为1.jpg[20] 需要有空格那也有是黑名单 那就会发现根本不需要利用这个漏洞来实现getshell 有许多后缀名都可以绕过 但是这个漏洞在Windows环境下的利用价值就大大增强了,因为漏洞利用的前置条件”文件名末尾带空格的文件”不再需要。Windows下的API在读取文件时,会自动忽略对应文件名后的空格,也就是:
read “a.txt ” -> 实际读取的是文件”a.txt”
write “b.txt ” -> 实际写的是文件”b.txt”


漏洞分析

https://blog.csdn.net/Blood_Pupil/article/details/88565176
http://www.lenky.info/archives/2016/04/2488

你可能感兴趣的:(漏洞利用,漏洞利用)