4K Star 13.2K Fork 6.1K

GVP铭飞 / MCMS

 / 详情

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

Done
Opened this issue  
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验证成功
输入图片说明

Comments (1)

lz2y&r2 created任务
铭飞 changed issue state from 待办的 to 进行中
铭飞 set milestone to 5.2.6
Expand operation logs

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

铭飞 changed issue state from 进行中 to 已完成

Sign in to comment

Status
Assignees
Milestones
Pull Requests
Successfully merging a pull request will close this issue.
Branches
Planed to start   -   Planed to end
-
Top level
Priority
参与者(2)
542665 mingsoft 1578927126
Java
1
https://gitee.com/mingSoft/MCMS.git
git@gitee.com:mingSoft/MCMS.git
mingSoft
MCMS
MCMS

Search