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/