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

所属分类: 软件教程 / 安全相关 阅读数: 1317
收藏 0 赞 0 分享

最近官方发布了一个安全补丁,官方表述是:该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
更多精彩内容其他人还在看

360安全卫士恢复区在哪? 360把文件删了的恢复方法

这篇文章主要介绍了360安全卫士恢复区在哪,有些文件被360直接删除了,但其实有些文件不是病毒,那么就需要进入360恢复区将文件恢复了
收藏 0 赞 0 分享

电脑文件加密软件、企业数据加密、电子文档加密软件的选择

今天小编为大家带来一款同样功能强大而且免费的文件加密软件:AxCrypt,AxCrypt 是一款来自瑞典的免费开源的文件加密软件,下面一起跟小编来看看教程吧
收藏 0 赞 0 分享

怎么彻底删除360手机助手? 禁止360助手自动安装的方法

怎么彻底删除360手机助手?电脑一连接手机就会安装360手机助手,但是不喜欢,想卸载,该怎么完全卸载呢?下面分享卸载并禁止360助手自动安装的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

电脑中了crypt勒索病毒所有资料文件被加密打不开怎么办?

电脑中了crypt勒索病毒所有资料文件被加密打不开怎么办?电脑突然中了病毒,所有文件都打不开,如果打开就需要给比特币,下面我们就来看看crypt解密的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

江民杀毒软件效果如何? 江民杀毒软件好用吗?

江民杀毒软件作为一款具有悠久历史的杀毒软件,一直活跃在中国的市场中,无论是中国还是外国的杀毒软件都无法撼动它的地位,很多年轻人都不太了解江民杀毒软件,那么我们就跟着这篇文章一起来了解一下吧
收藏 0 赞 0 分享

卡巴斯基打不开了怎么办?解决办法有哪些?

卡巴斯基反病毒软件是世界上拥有最尖端科技的杀毒软件之一,具有强大的杀毒能力但是和有的计算机不相匹配,无法打开,让用户无法享受到最好的服务。很多用户都在询问如何打开卡巴斯基杀毒软件,那么就根据这篇文章一起来了解一下吧
收藏 0 赞 0 分享

电脑上如何给文件加密、电脑文件如何设置密码、怎样把电脑文件加密

这篇文章主要介绍了电脑上如何给文件加密、电脑文件如何设置密码、怎样把电脑文件加密,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

360安全卫士解决观看优酷、爱奇艺视频播放异常的设置方法

360安全卫士不仅仅能帮助小伙伴们解决日常电脑出现的问题,还能帮助小伙伴们解决观看视频的时候出现播放异常,下面脚本之家小编带来了360安全卫士解决观看优酷、爱奇艺视频播放异常的设置方法,希望对大家有所帮助
收藏 0 赞 0 分享

电脑上如何给文件加密、电脑文件如何设置密码、文件加密管理系统的选择

电脑上如何给文件加密、电脑文件如何设置密码、文件加密管理系统的选择,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

卡巴斯基怎么设置排除项并不能排除Hosts文件?

卡巴斯基怎么设置排除项并不能排除Hosts文件?卡巴斯基检查电脑的时候,发现总是会删除hosts修改过的内容,该怎么解决这个问题呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多