实验环境


windows server 2008(x64)

IIS7

phpStudyIIS 2016版本


漏洞条件


1. php.ini里的cgi.cgi_pathinfo=1

2. IIS7在Fast-CGI运行模式下


漏洞复现


先搭建IIS7


IIS7.0解析漏洞_重启


IIS7.0解析漏洞_PHP_02

 



这里记得勾选CGI

IIS7.0解析漏洞_重启_03

 

IIS7.0解析漏洞_PHP_04

 





然后我们在PHPStudy安装好并切换成IIS版的,php为5.2.17版本



IIS7.0解析漏洞_重启_05

 

IIS7.0解析漏洞_重启_06

 



我们写一个PHP文件验证下,PHP环境是否搭建成功

IIS7.0解析漏洞_php_07

 



这个时候我们创建一个789.jpg


IIS7.0解析漏洞_重启_08

 


如果解析漏洞成功,则会显示里面的内容

我们先访问下


IIS7.0解析漏洞_PHP_09

 


在没有配置CGI 模式下输入/.php是无法触发解析漏洞的

IIS7.0解析漏洞_php_10



我们接下来进行配置


1. 先把php的cgi.fix_pathinfo 取消注释并把值改为 1

IIS7.0解析漏洞_重启_11

 



2.  在更改下网站的处理程序映射

IIS7.0解析漏洞_PHP_12

 

IIS7.0解析漏洞_PHP_13

 







然后在PHPStudy中重启下

再次访问http://192.168.61.141/789.jpg/.php

IIS7.0解析漏洞_PHP_14

 



防御方法

1. 配置php.ini里cgi.fix_pathinfo=0,并重启服务器

2. 在模块映射中勾选请求限制