1. IIS 5.x/6.0解析漏洞:

    1. 目录解析:/xx.asp/xx.jpg,在网站下建立文件夹的名字为 .asp、.cer、.cdx、.asa 的文件夹,其目录内的任何扩展名的文件都被 IIS 当作 asp 文件来解析并执行。
    2. 文件解析漏洞:test.asp;.jpg, 在 IIS6.0 下,分号后面不会被解析。
  2. IIS 7.0/IIS 7.5/ Nginx <8.03畸形解析漏洞:

    1. 在 Nginx 默认开启 Fast-CGI 下,如果上传一个伪造图片(如backdoor.jpg),然后访问 backdoor.jpg/.php,环境上就会执行这个文件。(防御修改 php.ini 文件,将 cgi.fix_pathinfo 的值设置为0;或者在配置文件添加处理规则)
  3. Nginx<1.8空字节代码执行漏洞:

    1. Nginx 在图片中嵌入 php 代码后通过访问 xxx.jpg%00.php 来执行其中的代码。
  4. Apache 解析漏洞:Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断(防御:禁止 .php. 类似文件执行)

  5. 其他:

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

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

      1
      
      <FilesMatch "test.jpg"> SetHandler application/x-httpd-php </FilesMatch>
      

      然后再上传 shell.jpg 的木马, 这样 shell.jpg 就可解析为 php 文件。(防御:最好禁用 htaccess )