常见文件解析漏洞汇总

一、解析漏洞

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

二、常见的解析漏洞

IIS6.0解析漏洞

1.目录解析

以*.asp命名的文件夹里的文件都被被当成ASP文件执行

2.文件解析

*.asp;.jpg这种畸形文件名在“;”后面的直接被忽略,以 *.asp文件执行

3.IIS6.0默认的可执行文件除了asp还包含*.asa *.cer *.cdx

Apache解析漏洞

apache是从右到左开始判断解析,如果为不可识别解析,就再往左判断

如果我们上传的aa.php.xx,后缀名xx是Apache不能识别的文件后缀名,则继续向左读取,直到读取到了php,Apache能够识别,则该文件就被解析成为了php类型的文件

htaccess文件解析:

如果在Apache中.htaccess可被执行.且可被上传.那可以尝试在.htaccess中写入:

<FilesMatch “shell.jpg”> SetHandler application/x-httpd-php

然后再上传shell.jpg的木马, 这样shell.jpg就可解析为php文件

nginx解析漏洞

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

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

Xxx.jpg%00.php该文件会被当做脚本文件php执行。

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默认是开启的,当URL中有不存在的文件,PHP就会向前递归解析

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

Windows操作系统文件命名规则

Windows操作系统中,文件名不能以空格或“.”开头,也不能以空格或“.”结尾。当把一个文件命名为以空格或“.”开头或结尾时,会自动地去掉开头和结尾处的空格和“.”。利用此特性,也可能造成漏洞

参考链接

1.https://blog.csdn.net/hitwangpeng/article/details/46913957?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=1328593.462.16146978884134371&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

2.https://www.cnblogs.com/dsli/p/7284501.html