IISPHPfastcgi模式pathinfo取值错误任意代码执行漏洞修复方法

IISPHPfastcgi模式pathinfo取值错误任意代码执行漏洞修复方法

描述:

目标存在任意代码执行漏洞。

漏洞形成原因:PHP默认配置有误,IS+PHP fastcgi模式在解析PHP文件时存在缺陷,导致任意文件会被服务器以PHP格式解析,从而导致任意代码执行。

验证方式:打开目标页面后在原URL后添加/test.php

示例:在http://www.xxx.com/123.jpg后输入/test.php并回车,使用抓包工具查看响应头信息,如果包含PHP/x.x.x即可证明漏洞存在。

部分浏览器免费抓包工具:

360浏览器:工具-- 开发人员工具
IE浏览器:工具-- F12开发人员工具
Firefox:搜索下载Firebug插件-- F12呼出
Chrome:点击右上角的菜单-- 工具-- 开发者工具

危害:

攻击者可以利用该漏洞直接在网站执行任意代码,可能直接控制网站服务器,盗取网站数据,影响网站的正常运营。

最近360提示这个IIS+PHP fastcgi模式 pathinfo取值错误任意代码执行漏洞,这里根据提示修复了漏洞,具体方法如下

以下是360给出的解决方案

一、更换PHP默认的Fastcgi模式为ISAPI模式(只能运行于Windows环境)

1.下载PHP的ZIP文件包,下载地址http://www.php.net(注意版本要对应)
2.将sapi目录中的:php4isapi.dll复制到c:\php目录中
3.进入虚拟主机管理平台的 网站管理 - 虚拟主机 --服务器设置中,修改PHP的影射,将原来的:
.php,C:\PHP\php.exe,5,GET,HEAD,POST,TRACE|
改成:
.php,C:\PHP\php4isapi.dll,5,GET,HEAD,POST,TRACE|
4.(IIS 6才需要)打开IIS管理器,点击Web服务扩展,点击php的属性, 要求的文件 ---添中--选中 C:\PHP\php4isapi.dll ,确定后,PHP就可以调用。

8b8.cn小编评语:

一般不建议变更为ISAPI模式,效率很低.2003 php5.2.17可以使用isapi方式,2008 则建议直接修改php.ini配置文件把cgi.fix_pathinfo值改为0 就行了.

二、在条件允许的情况下(咨询网站工程师),更改php.ini中的配置参数cgi.fix_pathinfo值为0

建议用这个,但需要用服务器管理权限的,一般是vps或主机

8b8.cn小编评语:

推荐这种方式,不论iis还是apache、nginx都很方便

三、针对iis的解决方案

此处客户的环境是windows server 2008R2的IIS,这里我在 处理程序映射 里找到php的双击进入此界面

进入 请求限制

确定后就可以了。

测试:

在服务器上根目录新建一个phpinfo()的JPG文件test.jpg,访问http://www.xxx.com/test.jpg/1.php(test.jpg后面的php名字随便写),如果有漏洞则可以看到phpinfo()的信息,反之会返回404错误。

四、使用360网站卫士

Nginx pathinfo取值错误任意代码执行漏洞

漏洞形成原因:由于Nginx默认配置有误,从而导致了一个任意代码执行漏洞.
受影响版本:
nginx 0.5.*
nginx 0.6.*
nginx 0.7 = 0.7.65
nginx 0.8 = 0.8.37
危害:
黑客可以利用该漏洞直接在网站执行任意代码,从而有可能直接控制网站服务器,盗取网站数据,影响网站的正常运营。

解决方案:

升级Nginx至最新版本,官方网站:http://nginx.org/。

IISPHPfastcgi模式pathinfo取值错误任意代码执行漏洞修复方法