漏洞复现环境

1
2
3
4
5
Windows Server 2008_x64

IIS 7.*

PhpStudy

2008服务器必须能和PC物理主机相互Ping通

在这里我物理主机的IP是:192.168.1.100

2008虚拟机的IP是:192.168.119.137

图片

提示:如果物理主机Ping不通2008,那么就吧2008的防火墙关闭就可以了!

安装IIS7.0

服务器管理器 - 角色 - 下一步 Web服务器IIS - 勾选CGI

图片

图片

图片

因为我们漏洞复现所需的条件就是CGI是开启的!

图片

安装成功以后,在开始菜单 - 管理工具 - Internet 信息服务(IIS)管理器

图片

图片

访问http://192.168.119.137/:

图片

这个就是IIS7.0的页面!

不知道你们注意没有,在2008服务器中,右键新建,只能新建文件夹,不能新建文件:

图片

其实就是权限的问题!

解决方法:来到目录 - 右键属性 -安全 -添加一个Evervone权限

图片

图片

图片

这个时候就可以新建文件了!

安装PhpStudy

图片

图片

安装完PhyStudy后,他显示Apache已经停止,其实就是端口的问题 - 端口冲突导致的!

因为我们在IIS7.0已经安装了一个网站了,端口是80,所以导致Apache异常!

切换版本 - IIS7/8 + PHP5.2

图片

图片

图片

这个时候IIS就会有一个Phpstudy的网站,我们不用它,把它停止,用默认网站就行了!

这个时候服务器的PHP环境就搭建好了,就可以运行PHP脚本了!

在网站根目录创建一个1.php的文件看看能不能访问:

图片

图片

环境都搭建完毕了!

漏洞成因

1
liuwx.jpg/.php

漏洞形成条件

1、php.inicgi.fix_pathinfo=1

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

漏洞复现

先新建一个liuwx.jpg的文件:

图片

访问一下看看:

http://192.168.119.137/liuwx.jpg

图片

图片是正常访问的!

我们访问:

http://192.168.119.137/liuwx.jpg/.php

图片

提示:服务器错误,404-找不到文件或目录

很显然漏洞复现失败!是因为漏洞形成条件没有达到!

来到这里:C:\phpstudy\php52有一个php.ini配置文件:

图片

图片

默认cgi.fix_pathinfo0,我们把前面的;去掉,因为那是注释,然后把0改为1

图片

这个时候就满足漏洞的第一个条件了,接下来我们去配置第二个条件:

来到Internet 信息服务(IIS)管理器 - 处理程序映射

图片

phpstudy_FastCGI - 请求限制 - 吧哪个映射√取消掉

图片

图片

这个时候,漏洞形成的条件都满足了!

再来访问:

http://192.168.119.137/liuwx.jpg/.php

图片

漏洞成功复现,当我们把一个jpg图片后面加上/.php,它就会吧图片当做php脚本来执行!

漏洞防御

1、配置php.inicgi.fix_pathinfo=1,并重启服务器

2、在模块映射中勾选请求设置