处理一起IIS的FastCGI解析漏洞
问题描述:FastCGI解析漏洞WebServer Fastcgi配置不当,会造成其他文件(例如css,js,jpg等静态文件)被当成php脚本解析执行。当用户将恶意脚本webshell改为静态文件上传到webserver传递给后端php解析执行后,会让***者获得服务器的操作权限高
风险项
漏洞地址(URL)参数请求方法发现时间恢复时间持续时间
http://blog.运维网.com/e/u261/themes/default/images/spacer.gifhttp://www.heda-china.com/ GET7月16日 10:24未恢复至今
解决方案
配置webserver关闭cgi.fix_pathinfo为0 或者 配置webserver过滤特殊的php文件路径例如:
if ( $fastcgi_script_name ~ ..*/.*php )
{
return 403;
} 一般来说网上多是nginx用户有此漏洞,此处客户的环境是windows server 2008R2的IIS,这里我在‘处理程序映射’里找到php的双击进入此界面
http://s4.运维网.com/wyfs02/M01/84/F5/wKioL1eYZjTSXe3WAAAhzXvHGSs795.png-wh_500x0-wm_3-wmp_4-s_868693083.png
进入‘请求限制’
http://s4.运维网.com/wyfs02/M02/84/F5/wKiom1eYZjSymOr_AAAbBglSack063.png-wh_500x0-wm_3-wmp_4-s_270322600.png
确定后就可以了。
测试:
在服务器上根目录新建一个phpinfo()的JPG文件test.jpg,访问http://www.xxx.com/test.jpg/1.php(test.jpg后面的php名字随便写),如果有漏洞则可以看到phpinfo()的信息,反之会返回404错误。
后记:
nginx里面处理此问题,网上的解决方法是写入
try_files $fastcgi_script_name =404; 到fastcgi.conf里面,然后在location中引用
location ~ \.php$ {
fastcgi_pass unix:/tmp/phpfpm/php-fpm.sock;
include fastcgi.conf;
} nginx官方推荐使用try_files替代if相应功能。
页:
[1]