目录
?????????Apache解析漏洞
IIS解析漏洞
Nginx解析漏洞
Apache解析漏洞
适用:Test.php.xxx
任意不属于黑名单且不属于Apache解析白名单之内的后缀名。
原理:一个文件名为 Tets.php.aa.bb.cc 的文件,Apache会从 cc 的位置往 php 的位置开始尝试解析,如果
cc 不属于Apache能解析的后缀名,那么Apache就会尝试去解析 bb ,这样一直往前尝试,直到遇到一个
能解析的拓展名为止。
能解析的后缀:在mime.types文件中有记录。该文件是一个一对多的映射表,定义了某一种文件对应的几种后缀
Ubunt下,该文件位于 /etc/mime.types
Windows在,该文件位于 C://apache/conf/mime.types(注意Apache安装路径)
?
?IIS解析漏洞
dir.asp/任意文件名 | Test.asp;任意文件名
IIS6.0 在解析 asp 格式的时候有两个解析漏洞。
1.如果目录名以 .asp .asa .cer .cdx 字符串结尾,那么这个目录下的所有文件都会按照 asp 格式去解析。 eg:Test.asp/1.jpg
2.只要文件名中包含有 .asp .asa .cer .cdx 会优先按照 asp 格式来解析。 eg:Test.asp;.jpg
IIS7.0/7.5 是对 php 解析时有一个类似 Nginx 的解析漏洞,对任意文件名只要在 URL 后追加上字符串 /任意文件名.php 就会按照 php 的方式去解析。
eg:http://www.test.com/Test/test.jpg/1.php
?安装相应版本的IIS进行后续实验
Nginx解析漏洞
IIS7.0/IIS7.5/Nginx < 8.03 畸形解析漏洞
任意文件名/任意文件名.php | 任意文件名%00.php
目前Nginx主要有以下两种漏洞:
1.对任意文件名,在后面添加/任意文件名.php的解析漏洞,如原文件名是tets.jpg,可以添加为
test.jpg/x.php进行解析攻击。eg:http://www.test.com/Test/1.jpg/1.php
2.对低版本的Nginx可以在任意文件名后面添加%00.php进行解析攻击。
Nginx 0.5.*
Nginx 0.6.*
Nginx 0.7 <= 0.7.65
Nginx 0.8 <= 0.8.37
以上Nginx容器的版本下,上传一个在 waf 白名单之内拓展名的文件 1.jpg ,然后以 1.jpg%00.php进
行请求。
在Linux系统里,以上Nginx容器的版本下,上传一个在 waf 白名单之内拓展名的文件 1.jpg ,然后以 1.jpg%20%00.php进行请求。
?
?
?
|