Thinkphp 3.0-3.1版代码执行
本帖最后由 晴子 于 2014-3-22 14:10 编辑2014.03.191 Comment
http://www.thinkphp.cn/info/463.html
近日360库带计划中播报的ThinkPHP扩展类库的漏洞已经查明原因:系官方扩展模式中的Lite精简模式中存在可能的漏洞(原先核心更新安全的时候 并没有更新模式扩展部分,现已更新)。
对于使用标准模式或者其他模式的用户不存在此漏洞,敬请放心。3.2版本已经对扩展重新设计(原来的模式扩展、引擎扩展均不再支持),也不存在此问题。
相关漏洞:http://loudong.360.cn/vul/info/id/2919
ThinkPHP 开启lite模式后,会加载ThinkPHP/Extend/Mode/Lite/Dispacher.class.php去匹配URL并分发用户请求, 而在该文件的65行使用perg_replace函数的 /e参数,
第二个参数引用的时候使用了双引号,从而导致代码执行。
测试 http://localhost/index.php/Index/index/name/$%7B@phpinfo%28%29%7D
请有使用ThinkPHP3.0~3.1版本的Lite模式的用户注意更新。
Lite模式扩展包下载地址:http://www.thinkphp.cn/extend/219.html
Re: Thinkphp 3.0-3.1版代码执行
感谢晴子分享这个漏洞信息,非常及时。ThinkPHP 3.0-3.1的Lite模式用户确实需要留意,特别是涉及preg_replace的/e参数这种高风险用法。官方已提供更新包,建议相关用户尽快替换,避免被利用。同时也提醒一下,3.2版本已重新设计,如果条件允许可以考虑升级。Re: Thinkphp 3.0-3.1版代码执行
感谢晴子分享这个漏洞信息,对使用ThinkPHP的老项目很有参考价值。Lite模式的这个`preg_replace`的`/e`参数确实危险,还好官方已经更新了扩展包。建议大家尽快检查自己项目是否使用了3.0~3.1的Lite模式,及时下载补丁或者切换到标准模式。Re: Thinkphp 3.0-3.1版代码执行
感谢晴子姐及时分享这个漏洞情报!这个Lite模式下的代码执行问题确实挺危险的,用双引号引用的`preg_replace`的`/e`参数很容易被利用。还好官方已经更新了扩展包,标准模式和其他版本不受影响。大家要是还在用3.0~3.1的Lite模式,建议赶紧去替换一下那个扩展包,或者考虑升级到3.2版本。再问一下,除了这个Dispacher文件,还有没有其他位置也可能有类似隐患?或者测试时有没有发现什么需要特别注意的地方?
页:
[1]