Web 服务器解析漏洞 小结
文章目录
IIS 5.x/6.0解析漏洞:
- 目录解析:
/xx.asp/xx.jpg
,在网站下建立文件夹的名字为 .asp、.cer、.cdx、.asa 的文件夹,其目录内的任何扩展名的文件都被 IIS 当作 asp 文件来解析并执行。 - 文件解析漏洞:
test.asp;.jpg
, 在 IIS6.0 下,分号后面不会被解析。
- 目录解析:
IIS 7.0/IIS 7.5/ Nginx <8.03畸形解析漏洞:
- 在 Nginx 默认开启 Fast-CGI 下,如果上传一个伪造图片(如backdoor.jpg),然后访问
backdoor.jpg/.php
,环境上就会执行这个文件。(防御修改 php.ini 文件,将 cgi.fix_pathinfo 的值设置为0;或者在配置文件添加处理规则)
- 在 Nginx 默认开启 Fast-CGI 下,如果上传一个伪造图片(如backdoor.jpg),然后访问
Nginx<1.8空字节代码执行漏洞:
- Nginx 在图片中嵌入 php 代码后通过访问
xxx.jpg%00.php
来执行其中的代码。
- Nginx 在图片中嵌入 php 代码后通过访问
Apache 解析漏洞:Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断(防御:禁止
.php.
类似文件执行)其他:
在 Windows 环境下,
xx.jpg[空格]
或xx.jpg
. 这两类文件都是不允许存在的,若这样命名,Windows 会默认除去空格或点,黑客可以通过抓包,在文件名后加一个空格或者点绕过黑名单.若上传成功,空 格和点都会被 Windows 自动消除,这样也可以getshell。如果 Apache 中的
.htaccess
可以被执行,且可被上传,可以尝试在.htaccess
写入1
<FilesMatch "test.jpg"> SetHandler application/x-httpd-php </FilesMatch>
然后再上传 shell.jpg 的木马, 这样 shell.jpg 就可解析为 php 文件。(防御:最好禁用 htaccess )