解析漏洞的定义和常见的解析漏洞总结

目录

一、什么是解析漏洞

二、常见的解析漏洞

1、IIS 5.x/6.0解析漏洞

2、IIS 7.0/IIS 7.5/ Nginx <8.03畸形解析漏洞

3、Nginx <8.03 空字节代码执行漏洞

4、Apache解析漏洞


一、什么是解析漏洞

解析漏洞是指服务器应用程序在解析某些精心构造的后缀文件时,会将其解析成网页脚本,从而导致网站的沦陷。大部分解析漏洞的产生都是由应用程序本身的漏洞导致的。

此类漏洞中具有代表性的便是IIS6.0解析漏洞,此漏洞又有目录解析和文件解析两种利用方式,但也有少部分是由于配置的疏忽所产生的,如Nginx < 8.03的畸形解析漏洞。

二、常见的解析漏洞

1、IIS 5.x/6.0解析漏洞

在IIS5.X和IIS6.0版本中存在以下两个解析漏洞。

(1)目录解析漏洞

在网站中建立名字为*.asp、*.asa的文件夹,其目录内的任何扩展名文件都会被IIS当做ASP文件来解析并执行。

例如:创建一个目录test.asp,那么/test.asp/1.jpg将被当做ASP文件来执行。

/xx.asp/xx.jpg

(2)文件解析漏洞

网站上传图片的时候,如果将网页木马文件的名字改成"*.asp;1.jpg",分号后面的不被解析,也就是说,"*.asp;1.jpg"会被服务器看成是*.asp,就可以绕过服务器禁止上传ASP文件的限制,这样的畸形文件也同样会被IIS当做ASP文件来解析并执行。

例如:上传一个图片文件名为"test.asp;1.jpg"的木马文件,该文件可以被当做ASP文件解析并执行。

在IIS6.0版本中,默认可执行文件除了test.asp以外,还包括test.asa、test.cer、test.cdx这三种,同样也存在解析漏洞。

test.asp;1.jpg
test.asa;1.jpg
test.cer;1.jpg
test.cdx;1.jpg

2、IIS 7.0/IIS 7.5/ Nginx <8.03畸形解析漏洞

IIS 7.0/IIS 7.5/ Nginx <8.03在Fast-CGI运行模式下,在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件。

在某些使用有漏洞的网站中,访问http://127.0.0.1/1.jpg/1.php,此时的1.jpg会被当作PHP脚本来解析,此时1.php是不存在的。

这就意味着攻击者可以上传合法的“图片”(图片木马)然后在URL后面加上“/xxx.php”,就可以获得网站的WebShell,在使用菜刀链接即可。

1.jpg/1.php

3、Nginx <8.03 空字节代码执行漏洞

影响版:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37

当使用PHP-FastCGI执行PHP时,遇到url里面存在%00空字节时与FastCGI的处理不一致,导致可在非PHP文件中嵌入PHP代码,通过访问url+%00.PHP来执行其中的PHP代码。

例如:"http://127.0.0.1/1.jpg%00.php"会把1.jpg文件(木马文件)当做PHP文件来执行。

xxx.jpg%00.php

4、Apache解析漏洞

在Apache 1.x和Apache 2.x中也存在解析漏洞。

例如:1.php.rar会被当作php文件执行。

Apache在解析文件时有一个原则:按照识别“.”后的扩展名来解析,当碰到不认识的扩展名时,将会从后面向前解析,直到碰到认识的扩展名为止。

例如:1.php.aa.bb.cc

1.php.aa.bb.cc

会先解析cc,若cc不存在则解析bb,bb不存在则解析aa,aa不存在则只能解析PHP了。如果解析完还没有碰到可以解析的扩展名,就会暴露源文件。

这种方法可以绕过基于黑名单的检查。(如网站限制,不允许上传后缀名为PHP、ASP、ASA等的文件)

你可能感兴趣的:(kali,Linux,渗透测试)