网络安全/渗透测试/代码审计/
关注
IIS-解析漏洞(下)
漏洞复现环境
代码语言:javascript复制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
的文件看看能不能访问:
环境都搭建完毕了!
漏洞成因
代码语言:javascript复制liuwx.jpg/.php
漏洞形成条件
1、php.ini
里cgi.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:phpstudyphp52
有一个php.ini
配置文件:
默认cgi.fix_pathinfo
是0
,我们把前面的;
去掉,因为那是注释,然后把0
改为1
这个时候就满足漏洞的第一个条件了,接下来我们去配置第二个条件:
来到Internet 信息服务(IIS)管理器
- 处理程序映射
phpstudy_FastCGI
- 请求限制
- 吧哪个映射√取消掉
这个时候,漏洞形成的条件都满足了!
再来访问:
http://192.168.119.137/liuwx.jpg/.php
漏洞成功复现,当我们把一个jpg
图片后面加上/.php
,它就会吧图片当做php
脚本来执行!
漏洞防御
1、配置php.ini
里cgi.fix_pathinfo=1
,并重启服务器
2、在模块映射中勾选请求设置