Se7en's Blog|Learn and live

解析漏洞汇总

字数统计: 688阅读时长: 2 min
2019/01/03 Share

※什么是解析漏洞?

简单的说,解析漏洞就是web容器将其他格式的文件解析为可执行脚本语言,攻击者可以利用这个特征去执行一些攻击行为。

IIS 解析漏洞

※使用IIS6.0的服务器,一般是Windows server 2003,解析语言是asp,不能解析aspx语言

IIS6.0 在解析文件时存在以下两个解析漏洞

  1. 当建立 .asa ,.asp 格式的文件夹时,其目录下的任意文件都将被 IIS 当作 asp 文件来解析

  2. 在 IIS6.0 下,分号”;”后面的扩展名不会被解析,也就是说当文件为 *.asp;.jpg 时,IIS6.0 同样会以 ASP脚本来执行

  3. 其他默认可执行文件格式

    1
    2
    3
    4
    *.asa
    *.cer
    *.cdx(这种格式也会解析,但是和版本有关)
    *.asa

Apache 解析漏洞

在 Apache 1.x 和 Apache 2.x 中存在解析漏洞 , 但他们与 IIS 解析漏洞不同

Apache 在解析文件时有一个规则:

当碰到不认识的扩展名时,将会从后向前解析,直到碰到认识的扩展名位置,如果都不认识,则会暴露其源码,比如:

1
test.php.rar.xx.aa

Apache 首先会解析 aa 扩展名,如果不认识则接着解析 xx 扩展名,这样一直遍历到认识的扩展名为止,然后再将其进行解析

PHP CGI 解析漏洞

在PHP的配置文件中有一个关键的选项:cgi.fi:x_pathinfo 这个选项在某些版本是默认开启的,在开启时访问 url

比如:http://www.xxx.com/x.txt/x.php ,x.php 是不存在的文件,所以 php 将会向前递归解析,于是就造成了解析漏洞

由于这种漏洞常见于 IIS7.0 、 IIS7.5 、 Nginx 等 Web服务器,所以经常会被误认为是这些 Web服务器的解析漏洞

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

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

Nginx 在图片中嵌入PHP代码 , 然后通过访问 xxx.jpg%00.php 可以执行其中的代码

其他

在 windows 环境下, xx.jpg[ 空格 ] 或 xx.jpg,这两类文件都是不允许存在的,若这样命名 windows 会默认除去空格或点, 攻击者可以通过抓包,在文件名后加一个空格或者点绕过黑名单

若上传成功,空格和点都会被 windows 自动消除,这样也可以 getshell

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

1
SetHandlerapplication/x-httpd-php

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

CATALOG
  1. 1. IIS 解析漏洞
  2. 2. Apache 解析漏洞
  3. 3. PHP CGI 解析漏洞
  4. 4. Nginx <8.03 空字节代码执行漏洞
  5. 5. 其他