| 目录 ?????????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进行请求。
   
 ? ? ? |