神的洗礼 發表於 2017-4-30 16:50:04

IIS的FastCGI漏洞处理方法

<p>FastCGI解析漏洞 WebServer Fastcgi配置不当,会造成其他文件(例如css,js,jpg等静态文件)被当成php脚本解析执行。当用户将恶意脚本webshell改为静态文件上传到webserver传递给后端php解析执行后,会让攻击者获得服务器的操作权限 高风险项漏洞地址(URL) 参数 请求方法 发现时间 恢复时间 持续时间</p>
<p>&nbsp;GET 7月16日 10:24 未恢复 至今解决方案配置webserver关闭cgi.fix_pathinfo为0 或者 配置webserver过滤特殊的php文件路径例如:</p>
<div class="jb51code">
<pre class="brush:plain;">
if ( $fastcgi_script_name ~ ..*/.*php )
{
return 403;
}</pre>
</div>
<p>一般来说网上多是nginx用户有此漏洞,此处客户的环境是windows server 2008R2的IIS,这里我在&lsquo;处理程序映射&rsquo;里找到php的双击进入此界面</p>
<p><img alt="" src="https://img.jbzj.com/file_images/article/201704/20170430164429.png" /></p>
<p>进入&lsquo;请求限制&rsquo;</p>
<p><img alt="" src="https://img.jbzj.com/file_images/article/201704/20170430164430.png" /></p>
<p>确定后就可以了。</p>
<p>测试:</p>
<p>在服务器上根目录新建一个phpinfo()的JPG文件test.jpg,访问http://www.xxx.com/test.jpg/1.php(test.jpg后面的php名字随便写),如果有漏洞则可以看到phpinfo()的信息,反之会返回404错误。</p>
<p>后记:</p>
<p>nginx里面处理此问题,网上的解决方法是写入</p>
<p>try_files $fastcgi_script_name =404;</p>
<p>到fastcgi.conf里面,然后在location中引用</p>
<div class="jb51code">
<pre class="brush:plain;">
location ~ \.php$ {
fastcgi_pass unix:/tmp/phpfpm/php-fpm.sock;
include fastcgi.conf;
}</pre>
</div>
<p>&nbsp;当然大家又可以参考这篇文章,360给出的解决方法 IIS PHP fastcgi模式 pathinfo取值错误任意代码执行漏洞修复方法</p>
頁: [1]
查看完整版本: IIS的FastCGI漏洞处理方法