文件解析漏洞:文件解析漏洞主要由于网站管理员操作不当或者 Web 服务器自身的漏洞,导致一些特殊文件被 IIS、apache、nginx 或其他 Web服务器在某种情况下解释成脚本文件执行。
IIS 5.x/6.0解析漏洞
目录解析漏洞(/test.asp/1.jpg)
test.asp目录中的任何文件都被IIS当做asp程序执行(特殊符号是“/”)
文件名解析漏洞(test.asp;.jpg)
该文件真正的后缀名是“.jpg”,但由于含有特殊符号“;”,仍会被IIS当做asp程序执行
IIS7.0/IIS7.5/Nginx<8.03畸形解析漏洞(test.jpg/*.php)
在默认Fast-CGI开启状况下,上传一个内容为
的文件Lin.jpg,然后访问Lin.jpg/.php,在这个目录就会生成一句话木马shell.php
www.xxx.com/login.gif/*.php触发漏洞(存在漏洞就会把前面的文件当作php执行)
其他解析漏洞
在windows环境下,xx.jpg[空格] 或 xx.jpg. 这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,黑客可以通过抓包,在文件名后加一个空格或者点绕过黑名单。若上传成功,空格和点都会被windows自动消除。可能造成文件解析漏洞
Apache解析漏洞
多后缀名解析:xx.php.aaa
Apache认为一个文件可以有多个后缀名,例如:hack.php.aaa。Apache的解析规则是从右往左依次判断后缀名,当Apache不认识这个后缀名时,就继续往左判断后缀名,从右往左都没有认识的,apache就会把该文件当做默认类型进行处理,一般,默认类型是text/plain。mime.types文件记录着apache认识的后缀。
通过.aaa绕过检测,借助apache的特性解析php文件
Nginx<8.03空字节代码执行漏洞
影响版本:0.5.,0.6.,0.7<=0.7.65,0.8<=0.8.37
Nginx在图片中嵌入PHP代码然后通过访问XX.jpg%00.php来执行其中的代码
Htaccess文件解析
若在apache中.htaccess可被执行且可被上传,那可以尝试在.htaccess中写入:
<FilesMatch “shell.jpg”> SetHandler application/x-httpd-php
然后再上传shell.jpg的木马,这样shell.jpg就可以被解析为php文件