针对腾讯云服务器上部署的ThinkPHP 5.0.22远程代码执行漏洞(CVE-2018-20062),以下是专业修复方案及防护建议:
漏洞概要
- 风险等级:高危(CVSS 3.0评分9.8)
- 影响范围:ThinkPHP 5.0.0-5.0.23版本
- 攻击原理:未开启强制路由时,攻击者通过构造恶意URL(如
index.php?s=/模块/控制器/操作/$恶意参数
)注入系统命令 - 利用特征:日志中可见
method=param&filter[]=system
等异常请求
修复方案
1. 紧急升级框架
bash复制# 通过Composer升级至官方修复版本
composer require topthink/framework 5.0.24
- 验证升级:检查
thinkphp/library/think/App.php
文件版本号(修复版本包含路由白名单校验)
2. 安全配置加固
php复制// 修改config.php配置文件
'url_route_must' => true, // 强制路由开启
'app_debug' => false, // 关闭调试模式
'log.record' => true, // 开启操作日志
3. 临时缓解措施(若无法立即升级)
php复制// 在应用入口文件追加过滤
if(stripos($_SERVER['REQUEST_URI'], 'index.php?s=/') !== false) {
header('HTTP/1.1 403 Forbidden');
exit;
}
攻击检测与验证
- 日志分析
检查runtime/log/
目录下日志文件,过滤关键词: bash复制grep -rn "system|passthru|exec" ./runtime/log/
- Webshell查杀
使用腾讯云安全工具扫描: bash复制/usr/local/qcloud/stargate/admin/webshell_scan.sh -p /网站根目录
- 漏洞验证POC
在测试环境执行: bash复制curl http://测试地址/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
预期结果:返回403 Forbidden
或空白页(非PHP信息页)
腾讯云环境专项防护
- 云防火墙策略
- 在控制台添加Web应用防护规则: markdown复制
阻断规则:URL参数包含"filter[]=system"或"function=call_user_func_array"
- 在控制台添加Web应用防护规则: markdown复制
- 主机安全防护
- 启用腾讯云主机安全(HSS)的「防篡改」功能,锁定核心文件: bash复制
/usr/local/qcloud/YunJing/conf/protect.conf # 添加thinkphp目录路径
- 启用腾讯云主机安全(HSS)的「防篡改」功能,锁定核心文件: bash复制
- 快照与回滚 bash复制
qcloudcli cvm CreateSnapshot --InstanceId ins-xxx --DiskId disk-xxx # 创建系统盘快照
后续防护建议
- 架构层
- 部署腾讯云Web应用防火墙(WAF),启用虚拟补丁规则集(规则ID:TP_5.0_RCE)
- 使用SCF无服务器架构分离业务逻辑与数据层
- 开发规范
- 遵循ThinkPHP官方安全指南,禁用
eval
、assert
等危险函数 - 对
$_REQUEST
参数进行强制类型转换:$id = (int)input('id');
- 遵循ThinkPHP官方安全指南,禁用
- 监控预警
- 配置云监控告警策略:当
CPU利用率>90%
且网络出流量>100MB/min
时触发SMS告警
- 配置云监控告警策略:当
修复验证流程
- 通过腾讯云漏洞扫描服务重新检测
- 使用Burp Suite发送模拟攻击请求
- 检查
/proc/self/cmdline
进程链是否异常
若需专业技术支持,可通过腾讯云工单系统(工单分类:安全 > 代码执行漏洞)提交日志样本及配置信息。
通过以上多维度防护措施,可有效阻断该漏洞攻击链,同时为后续同类漏洞提供防御纵深。建议在完成修复后,进行全量渗透测试(PTaaS)验证整体安全性。
感谢您的来访,获取更多精彩文章请收藏。

THE END