腾讯云报网站有ThinkPHP5.0.22远程代码执行高危漏洞修复

针对腾讯云服务器上部署的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;
}

攻击检测与验证

  1. 日志分析
    检查runtime/log/目录下日志文件,过滤关键词: bash复制grep -rn "system|passthru|exec" ./runtime/log/
  2. Webshell查杀
    使用腾讯云安全工具扫描: bash复制/usr/local/qcloud/stargate/admin/webshell_scan.sh -p /网站根目录
  3. 漏洞验证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信息页)

腾讯云环境专项防护

  1. 云防火墙策略
    • 在控制台添加Web应用防护规则: markdown复制阻断规则:URL参数包含"filter[]=system"或"function=call_user_func_array"
  2. 主机安全防护
    • 启用腾讯云主机安全(HSS)的「防篡改」功能,锁定核心文件: bash复制/usr/local/qcloud/YunJing/conf/protect.conf # 添加thinkphp目录路径
  3. 快照与回滚 bash复制qcloudcli cvm CreateSnapshot --InstanceId ins-xxx --DiskId disk-xxx # 创建系统盘快照

后续防护建议

  1. 架构层
    • 部署腾讯云Web应用防火墙(WAF),启用虚拟补丁规则集(规则ID:TP_5.0_RCE)
    • 使用SCF无服务器架构分离业务逻辑与数据层
  2. 开发规范
    • 遵循ThinkPHP官方安全指南,禁用evalassert等危险函数
    • $_REQUEST参数进行强制类型转换:$id = (int)input('id');
  3. 监控预警
    • 配置云监控告警策略:当CPU利用率>90%网络出流量>100MB/min时触发SMS告警

修复验证流程

  1. 通过腾讯云漏洞扫描服务重新检测
  2. 使用Burp Suite发送模拟攻击请求
  3. 检查/proc/self/cmdline进程链是否异常

若需专业技术支持,可通过腾讯云工单系统(工单分类:安全 > 代码执行漏洞)提交日志样本及配置信息。


通过以上多维度防护措施,可有效阻断该漏洞攻击链,同时为后续同类漏洞提供防御纵深。建议在完成修复后,进行全量渗透测试(PTaaS)验证整体安全性。

感谢您的来访,获取更多精彩文章请收藏。

THE END
点赞6 分享