一、背景介绍
ThinkPHP 是一个快速、简单的基于 MVC 和面向对象的轻量级 PHP 开发框架,遵循 Apache2 开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重开发体验和易用性,为 WEB 应用和 API 开发提供了强有力的支持。
1.1漏洞描述
据漏洞公告称,ThinkPHP 5.1.23之前的版本中存在SQL注入漏洞,该漏洞是由于程序在处理order by 后的参数时,未正确过滤处理数组的key值所造成。如果该参数用户可控,且当传递的数据为数组时,会导致漏洞的产生。
1.2漏洞编号
CVE-2018-16385
1.3漏洞等级
高危
二、漏洞复现
目前我们在5.1.21和5.1.22版本已经成功复现。
稍后我们会针对该漏洞写一个详细的分析文章并发布。
漏洞点
官方在源代码基础上,增加了对$key的判断和限制。以此修复了漏洞。
三、修复建议
3.1受影响版本
ThinkPHP < 5.1.23
3.2漏洞检测
检查ThinkPhP框架的版本号。
3.3解决方案
1.TOP-WAF产品防御规则ID:1040511 SQL注入攻击。
2.TOP-IDP产品的防御规则 ID:25774 ThinkPHP5.1 SQL漏洞攻击 CVE-2018-16385,将在 ips-v2018.09.12版本中发布此规则。
3.升级到ThinkPHP 5.1.24版本。
4.手动修复
根据官方给出的方案进行代码修改。
https://github.com/top-think/framework/commit/f0f9fc71b8b3716bd2abdf9518bcdf1897bb776c
四、天融信技术支持热线
天融信公司后续将积极为用户提供技术支持,进行持续跟踪并及时通报进展。
获取支持联系方式如下:
1.直接拨打400-610-5119电话联系当地技术支持团队获得支持。
2.座机拨打800-810-5119电话获取总部技术支持。