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

所属分类: 网络安全 / 脚本攻防 阅读数: 402
收藏 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
更多精彩内容其他人还在看

PHP Mysql 密码暴力破解代码,本机暴力破解 3306 端口

PHP Mysql 密码暴力破解,本机暴力破解 3306 端口,源码。代码简单的不能再简单了,就不解释了,功能很简单
收藏 0 赞 0 分享

PHP+MySQL手工注入语句大全 MySQL手工注入语句总结

PHP + MySQL 手工注入语句大全,MySQL 手工注入语句总结,MySQL,注入语句。暴字段长度 匹配字段 暴字段位置 利用内置函数暴数据库信息 不用猜解可用字段暴数据库信息(有些网站不适用): 操作系统信息
收藏 0 赞 0 分享

PHP 双字节、宽字节编码漏洞

PHP 双字节、宽字节编码漏洞。看了《黑防09精华》这篇《双字节编码 php的隐形杀手》,记录一下。还是用一个demo.php显示效果
收藏 0 赞 0 分享

ODOR1–PHP extract 后门使用方法

这篇文章主要为大家介绍了PHP extract 函数后门的使用方法,大家在检查后门的时候可以多关注一下,需要的朋友可以参考下
收藏 0 赞 0 分享

过安全狗/D盾/360的PHP一句话木马与防范方法

这篇文章主要介绍了过安全狗/D盾/360的PHP一句话木马,需要的朋友可以参考下
收藏 0 赞 0 分享

分享PHP场景中getshell防御思路

本文主要分享一下防御思路。防御方案主要想解决的问题是getshell、主机敏感文件泄漏等问题
收藏 0 赞 0 分享

SQL注入测试实例分析

这篇文章主要为大家介绍了SQL注入测试实例分析,对于数据库安全非常重要,需要的朋友可以参考下
收藏 0 赞 0 分享

帝国备份王(Empirebak)万能cookie及拿shell方法与防御

这篇文章主要介绍了帝国备份王(Empirebak)万能cookie及拿shell方法与防御,需要的朋友可以参考下
收藏 0 赞 0 分享

各种网页挂马方式原理揭密(iframe挂马,script 挂马,图片伪装挂马等)

现在,网站经常被各种网页挂马,为了保障大家网站的安全和互联网用户的安全,有必要对网页挂马有所了解。查了一些资料,由于存在大量的黑客软件,一个菜鸟只需几分钟就可以编写一个木马网页,对别人的网站进行挂马了
收藏 0 赞 0 分享

SQL注入攻击(攻击与防范)

SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉
收藏 0 赞 0 分享
查看更多