漏洞起因
设计错误
危险等级
高
影响系统
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
评论关闭。