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

所属分类: 软件教程 / 安全相关 阅读数: 1344
收藏 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
更多精彩内容其他人还在看

fastreader怎么使用?FastReader快解密码读取软件使用教程

近日,不少网友问小编fastreader怎么使用?今天脚本之家小编就给大家带来FastReader快解密码读取软件使用教程,手把手教大家fastreader怎样快速破解压缩文件密码破解
收藏 0 赞 0 分享

被瑞星杀毒隔离的文件在哪里?如何使用瑞星杀毒软件恢复被隔离文件?

被瑞星杀毒隔离的文件在哪里?相信很多小伙伴都会遇到这样的问题,那么,如何找回被隔离的文件呢?今天脚本之家小编就给大家介绍如何使用瑞星杀毒软件恢复被隔离文件,希望对大家有所帮助
收藏 0 赞 0 分享

网页无法打开怎么办?2345安全卫士怎么修复不能上网的问题?

网页无法打开怎么办?用2345安全卫士进行网络诊断!那么,2345安全卫士怎么修复不能上网的问题呢?今天脚本之家小编就给大家介绍2345安全卫士修复不能上网问题的方法,感兴趣的一起去了解一下吧
收藏 0 赞 0 分享

火绒安全软件怎么恢复被隔离的文件并添加信任?

最近,很多网友问小编火绒安全软件怎么恢复被隔离的文件并添加信任?今天脚本之家小编就给大家说说火绒恢复被隔离文件并添加信任的方法,希望对大家有所帮助
收藏 0 赞 0 分享

peid在64位系统下运行提示 Peid.exe已停止工作 的解决方法

这篇文章主要介绍了peid在64位系统下运行提示 Peid.exe已停止工作 的解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

百度卫士怎么关闭智能消息提醒功能?

百度卫士怎么关闭智能消息提醒功能?百度卫士最近总是提醒一些消息,妨碍工作,想关闭消息提醒,该怎么关闭呢?下面我们就来看看详细的设置方法,需要的朋友可以参考下
收藏 0 赞 0 分享

文件夹保护3000如何找回密码

很多用户都在使用文件夹保护3000这个软件,但是如何我们忘记文件夹保护3000的密码那该怎么解决呢?下面小编就为大家具体的讲解如何找回密码,希望可以帮助到大家
收藏 0 赞 0 分享

360卫士设置删除右键菜单使用360进行木马查杀等选项

电脑中安装了360安全卫士管理软件后,那么,在文件夹中使用右键会显示“使用360进行木马云查杀”。但是我们需要取消右键显示应该怎么做呢?下面小编就为大家带来360卫士设置删除右键菜单使用360进行木马查杀等选项的方法
收藏 0 赞 0 分享

电脑出现LSP被劫持无法上网问题的解决方法

一些用户反馈说电脑不能上网,出现了LSP被劫持而导致无法上网。本地连接显示正常,登陆QQ显示网络连接超时,打开浏览器不能显示网页,网络丢包率达到了100%,查杀木马、病毒也不能解决问题;该如何解决?下面小编就为大家带来电脑出现LSP被劫持无法上网问题的解决方法
收藏 0 赞 0 分享

鲁大师怎么才能完全彻底卸载删除

电脑安装太多的软件,影响电脑的运行速度,要卸载电脑不常用的软件,来给电脑减负。我们查看一下哪些软件属于电脑不常用的,可从鲁大师不常用需要卸载掉,今天跟大家分享一下怎么彻底卸载鲁大师操作步骤。
收藏 0 赞 0 分享
查看更多