关于的apache+php cgi mod 攻击

一、缘起:

1、攻击代码

国际知名的漏洞攻击代码发布机构 exploit-db发布了一个针对apache+php的攻击代码,作者为著名国际黑客Kingcope。详见 http://www.exploit-db.com/exploits/29290/

攻击效果图源于网络

QQ20131030-1

2、时间

实际上这个漏洞在2012年5月份就被发现了,php官方也修复了这个漏洞。

详见 http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/

3、成因

php作为cgi模式运行的时候,接受-s  -d -c 这样的参数,我们看看这些参数的功能


然后再看看攻击代码片段

解码出来是

 

这样Kingcope的攻击代码思路就出来了。

关闭各种防护的参数,打开各种危险的参数,最后利用auto_prepend_file(或auto_append_file)这个参数把黑客需要执行的系统命令传递过去了。

二、利用条件

不少同学关注利用条件,针对上述公开的exp,总结一下,要利用这个漏洞,必须同时满足如下条件:

1、apache+php是用cgi模式跑的,例如apache的mod_cgid

2、php解释器需要可以从下面的url访问到,当然或许可能是其他的url,这个具体要看你的配置

 

3、php版本
PHP版本小于5.3.12
PHP版本小于5.4.2

三、防护

0、升级到php的最新稳定版

1、如果你有web应用防火墙,那么可以在waf上拦截上述url及利用到的关键字,(小心黑客用一些编码技巧绕过你的规则)然后给运维充足的时间去升级。扯远一点,waf部署容易运营难,这也是为什么好些公司部署了waf但是依然web被黑的原因之一。

2、如果你没有waf,又想为升级php争取时间,可以考虑下列rewrite规则

 

四、FAQ

Q:nginx+php fastcgi模式是否受这个攻击代码影响?

A:暂时不受公开的攻击代码影响,但有空最好还是升级一下php。

Q:nginx+php+fpm模式是否受这个攻击代码影响?

A:暂时不受公开的攻击代码影响,但有空最好还是升级一下php。

[via@baozi.net]