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

所属分类: 软件教程 / 安全相关 阅读数: 1331
收藏 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系统急救箱WinPE版的详细使用步骤

Windows PreInstallation Environment(Windows PE,简称WinPE),其中文含义为Windows预安装环境,它包括运行安装程序、磁盘文件操作、连接网络共享以及执行硬件验证所需的最小Windows 功能集
收藏 0 赞 0 分享

金山毒霸如何进行文件粉碎图文教程

本文为大家详细介绍下金山毒霸进行文件粉碎的详细步骤:在右侧点击“文件粉碎”功能按钮。此时会弹出“文件粉碎器”对话框,启动金山毒霸2011的文件粉碎功能,详细参考下文
收藏 0 赞 0 分享

金山毒霸如何使用LSP修复工具及其作用介绍

网络管理员可利用LSP修复工具来更好地监视系统网络通讯情况,但目前很多恶意程序利用LSP劫持浏览器,如著名的 New.Net插件或WebHancer组件想,下面与大家分享下如何使用LSP修复工具
收藏 0 赞 0 分享

金山毒霸病毒未被清除推荐的解决方法

病毒未被清除很可能是因为感染病毒的文件正在被系统占用,下面与大家分享下解决方法,大家可以尝试下,希望对大家有所帮助
收藏 0 赞 0 分享

金山毒霸客户端如何绑定邮箱

本文为大家详细介绍下金山毒霸如何绑定邮箱:首先点击毒霸客户端的
收藏 0 赞 0 分享

教你如何使用PowerTool 20秒手动清除鬼影3病毒

“鬼影”系列病毒的共同特点是感染电脑硬盘的主引导记录(MBR),无论重装系统或是格式化硬盘都无法清除病毒。
收藏 0 赞 0 分享

瑞星个人防火墙V16保护网速功能使用介绍

个人防火墙产品不但功能丰富,还能尽可能优化电脑,提升我们的操作体验,其中,瑞星的“保护网速”功能很值得一提下面为大家详细介绍下,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

金山毒霸免费WiFi不耗手机流量永久免费的无线路由器

金山毒霸正式推出免费WiFi,完全免费且不耗费任何手机流量,是一款“永久免费的无线路由器”毒霸免费WiFi信号强,能够覆盖约50米范围,支持连入多台终端,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

瑞星防火墙V16:可自定义防火墙规则进一步提升防护能力

用户也可以自己编写防火墙规则,进一步提升防护能力,可以在“联网程序规则”与“IP规则”中调整防火墙的防护力度与方式,我们可以通过远程端口与本地端口的作用来制定IP规则,从而规范电脑网络的连接端口,让自己的网络更安全
收藏 0 赞 0 分享

360系统重装大师怎么用?360系统重装大师使用方法图文详细介绍

360系统重装大师一般都是将C盘格式化,其他盘不受影响的!不过,有的软件的一些文件会默认安装在C盘,如果重装系统后,不能使用这些软件,就要重装一下软件
收藏 0 赞 0 分享
查看更多