ThinkPHP framework 任意代码执行漏洞预警

所属分类: 网络安全 / 脚本攻防 阅读数: 268
收藏 0 赞 0 分享
ThinkPHP是一个国内使用很广泛的老牌PHP MVC框架。貌似国内有不少创业公司或者项目都用了这个框架。

最近官方发布了一个安全补丁,官方表述是:该URL安全漏洞会造成用户在客户端伪造URL,执行非法代码。

可是貌似大多数开发者和使用者并没有注意到此漏洞的危害性,应者了了,更不用说有多少人去升级了。随后我对其进行了分析,发现此问题果然是一个非常严重的问题,只要使用了thinkphp框架,就可以直接执行任意php代码。特此发帖预警各位。

我们来分析一下官方的补丁:

/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php

复制代码
代码如下:

125 - $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));
125 + $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']=\'\\2\';', implode($depr,$paths));


这个代码是把pathinfo当作restful类型url进行解析的,主要作用是把pathinfo中的数据解析并合并到$_GET数组中。
然而在用正则解析pathinfo的时候,主要是这一句:

复制代码
代码如下:

$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));

这里明显使用了preg_replace的/e参数,这是个非常危险的参数,如果用了这个参数,preg_replace第二个参数就会被当做php代码执行,作者用这种方式在第二个参数中,利用PHP代码给数组动态赋值。

复制代码
代码如下:

'$var[\'\\1\']="\\2";'

而这里又是双引号,而双引号中的php变量语法又是能够被解析执行的。因此,攻击者只要对任意一个使用thinkphp框架编写的应用程序,使用如下方式进行访问,即可执行任意PHP代码:

复制代码
代码如下:

index.php/module/action/param1/${@print(THINK_VERSION)}

由于是双引号执行,这里为了保险起见,不给出更有危害性的代码,利用这个还是需要点技巧的。

总之这个问题非常严重,找了一下,发现目前没有修补漏洞的网站还是很多的。而ThinkPHP框架的特征其实非常好识别,有意者直接写个scanner进行扫描也未必不可能。
为了不造成更大损失,特地发帖希望引起各位使用thinkphp做开发的同学关注。尽早升级官方的安全补丁

作者:GaRY
更多精彩内容其他人还在看

用JavaScript防止网站被挂IFRAME木马的方法

网站挂马的最常见形式就是IFRAME挂马,即在你的网页中加入一段框架网页代码,这个框架网页中的内容便是带木马病毒的网页。
收藏 0 赞 0 分享

ewebeditor 上传遇到防火墙限制的解决办法 图文

今天看了前面的原创帖子说到eweb遇到asp,asa,cer被限制访问拿不了shell,正好这个问题我是知道的。应该很多大牛都会的吧,估计还是有些不会的,就将就看看吧
收藏 0 赞 0 分享

Phpcms本地包含漏洞导致的写shell漏洞和删除任意文件漏洞

phpcms本地包含类漏洞,如果该文件包含了/include/common.inc.php就可以包含执行很多后台才能执行的文件了
收藏 0 赞 0 分享

收藏 0 赞 0 分享

php版shell.users加管理员帐号的方法

09年的时候 LCX 写出了 js版 和vbs 版的shell.users 加管理员帐号的方法,后来我就想把它改成PHP 版,由于对代码分析得不够准确,所以到最近才写出来
收藏 0 赞 0 分享

讯时系统(xuas)最新通杀漏洞0day图文说明

讯时系统(xuas)最新通杀漏洞0day图文说明,使用讯时网站管理系统的朋友可以参考下。
收藏 0 赞 0 分享

讯时漏洞一小结

在网上也有什么讯时三板斧的文章..但我个人觉得有时候靠那三种还是入侵不了(随着版本的更新)
收藏 0 赞 0 分享

DedeCms V5.6漏洞 变量未初始化 导致鸡助漏洞

DedeCMS内容管理系统软件采用XML名字空间风格核心模板:模板全部使用文件形式保存,对用户设计模板、网站升级转移均提供很大的便利
收藏 0 赞 0 分享

dedecms v5.6 GBK 注入漏洞利用(member/index.php)

会员中心首页(../member/index.php)函数过滤不严格造成盲注,数据库错误模式,XSS
收藏 0 赞 0 分享

DEDECMS 5.6最新Get Shell漏洞 DEDECMS 5.3/5.6

DedeCms 基于PHP+MySQL的技术开发,支持Windows、Linux、Unix等多种服务器平台,从2004年开始发布第一个版本开始,至今已经发布了五个大版本。
收藏 0 赞 0 分享
查看更多