ThinkPHP框架任意代码执行漏洞

作者:linux120 发布时间:January 15, 2013 分类:服务器维护

描述:
目标存在任意代码执行漏洞。
1.攻击者可以直接在使用了ThinkPHP框架的网站上执行任意php代码.
2.漏洞形成原因:ThinkPHP框架由于URI取值后动态赋值生成URL时,使用了preg_replace函数,并调用了e开关,同时又使用了支持php变量语法解析的双引号方式,最终导致了一个任意代码执行漏洞.
危害:
黑客可以利用该漏洞直接在网站执行任意代码,从而有可能直接控制网站服务器,盗取网站数据,影响网站的正常运营。
解决方案:
官方已经发布补丁:
https://code.google.com/p/thinkphp/source/detail?spec=svn2904&r=2838或者直接修改源码:/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php125行:$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));修改为$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']=\'\\2\';', implode($depr,$paths));将preg_replace第二个参数中的双引号改为单引号,防止其中的php变量语法被解析执行。