ThinkPHP order by SQL注入误差清静通告

宣布时间 2018-08-30

误差编号和级别


CVE编号:无 ,危险级别:高危 ,CVSS分值:官方未评定


影响版本


ThinkPHP 3.2.3、5.1.22及以下版本


误差概述


该注入误差由于ThinkPHP在处置惩罚order by排序时 ,其处置惩罚机制有一定缺陷 ,针对关联数组的Key值未举行清静过滤 ,攻击者可使用这一缺陷 ,对用户系统实验SQL注入攻击。


误差验证


ThinkPHP 3.2.3的代码来看 ,处置惩罚数组当$field参数为关联数组(key-value)时 ,key值拼接到返回值中 ,SQL语句最终绕过了框架清静过滤得以执行。而补丁中增添了在order剖析时对key值的清静过滤。


尊龙凯时 - 人生就是搏!



尊龙凯时 - 人生就是搏!


1.首先建设好复现所需要的数据库场景:


尊龙凯时 - 人生就是搏!


数据库表名test ,其中有2个字段id、username。数据库情形设计好之后需要建设对应� ?榈氖荼淼呐涛视镅�。如下图:


尊龙凯时 - 人生就是搏!


2.启动ThinkPHP服务器翻开欢迎页面:


尊龙凯时 - 人生就是搏!


3.然后通过结构的PoC来会见http://siteserver/thinkphp/?order[updatexml(1,concat(0x3a,user()),1)]=1 ,泛起如下页面即注入乐成。


尊龙凯时 - 人生就是搏!



影响规模


海内袒露再公网的ThinkPHP数据重大 ,需要高度重视。

尊龙凯时 - 人生就是搏!


修复建议


ThinkPHP v3下载补�。�

下载地址:https://github.com/top-think/


ThinkPHP v5.1.x下载补�。�

下载地址:https://github.com/top-think/framework


参考链接


http://www.thinkphp.cn/
http://galaxylab.org/thinkphp-3-x-5-x-order-by%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E/