ThinkPhp框架php代码任意执行漏洞

漏洞起因
设计错误
危险等级

影响系统
ThinkPHP

不受影响系统

危害
远程攻击者可以利用漏洞以应用程序上下文执行任意PHP代码。

攻击所需条件
攻击者必须访问ThinkPHP应用。

漏洞信息
ThinkPHP是一款国内使用比较广泛的老牌PHP MVC框架,有不少创业公司或者项目都用了这个框架。
ThinkPHP不正确过滤用户提交的参数,远程攻击者可以利用漏洞以应用程序上下文执行任意PHP代码。

测试方法
index.php/module/action/param1/${@print(THINK_VERSION)}

厂商解决方案
用户可下载官方发布的补丁:
http://code.google.com/p/thinkphp/source/detail?spec=svn2904&r=2838
或者或者直接修改源码:
/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php
$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变量语法被解析执行。

漏洞提供者
wooyun

漏洞消息链接
http://zone.wooyun.org/index.php?do=view&id=44

评论关闭。