4.1K Star 16.9K Fork 6.6K

GVP铭飞 / MCMS

 / 详情

MCMS存在命令执行漏洞【前台】

已完成
创建于  
2022-01-16 01:39

漏洞原理

net.mingsoft.basic.action.web.EditorAction#editor这里我们可以通过传json控制ueditor的配置,同时还可以上传文件
输入图片说明
com.mingsoft.ueditor.MsUeditorActionEnter的构造方法中会将我们传入的json配置存入到配置类中,相当于我们可以任意操控ueditor的配置
输入图片说明
接下来,我们可以利用这一点,去修改ueditor的配置的同时,上传文件,传入如下配置。修改图片上传路径为/template/1/default/{time},同时将允许的后缀多加一个.htm

{videoUrlPrefix:'',fileManagerListPath:'',imageMaxSize:204800000,videoMaxSize:204800000,fileMaxSize:204800000,fileUrlPrefix:'',imageUrlPrefix:'',imagePathFormat:'/template/1/default/{time}',filePathFormat:'/upload/1/cms/content/editor/{time}',videoPathFormat:'/upload/1/cms/content/editor/{time}',"imageAllowFiles":[".png", ".jpg", ".jpeg", ".gif", ".bmp",".htm"]}

同时传一个文件
输入图片说明
发包看看执行过程,如刚才分析的那样,在com.mingsoft.ueditor.MsUeditorActionEnter的构造方法中,将get传入的json配置解析,并保存到配置类中
输入图片说明
exec方法中,调用invoke执行上传代码
输入图片说明
跟进invoke方法,在54行获取配置,55行调用上传代码。54行获取的配置我们可以通过get传入json参数进行修改。
输入图片说明
到这里,我们就实现了任意目录上传任意文件,接下来看怎么rce,我们刚才通过改配置文件将文件上传到了/template/1/default/{time},回显给出了上传的文件路径,之所以要上传到这个路径,就是为了跟后面模板渲染组合构成rce。思路是,先上传一个恶意模板,然后触发恶意模板渲染,造成rce。
输入图片说明
找到net.mingsoft.cms.action.web.MCmsAction#search方法,发现其中可以控制渲染的模板文件,传入tmpl参数即可
输入图片说明
通过get传入tmpl参数,触发恶意模板渲染,发现计算器弹出,RCE验证成功
输入图片说明

评论 (1)

lz2y&r2 创建了任务
铭飞 任务状态从 待办的 修改为进行中
铭飞 里程碑设置为5.2.6
展开全部操作日志

感谢对开源产品的关注与支持,本月会全部同步更新

铭飞 任务状态从 进行中 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
542665 mingsoft 1578927126
Java
1
https://gitee.com/mingSoft/MCMS.git
git@gitee.com:mingSoft/MCMS.git
mingSoft
MCMS
MCMS

搜索帮助