MCMS后台getshell的方法

作者:小俊 分类: WEB漏洞大全 发布于:2020-7-4 12:11 ė118次浏览 60条评论
版本:mcms<=4.6.5。

1、漏洞接口地址

F12发现生成静态页时,传入的参数有后缀,猜测后端处理是否有问题,搜索定位生成静态页的URL:ms/cms/generate/generateIndex.do,搜索定位到src\main\java\com\mingsoft\cms\action\GeneraterAction.java

2、问题分析

定位到代码154行,从前台获得url和position 两个参数,看注释为模版文件,参数包含路径+文件名,postion为生成后的路径+文件名


然后以templets/站点ID/模版风格/模版路径拼接到tmpFilePath,tmpFilePath包含文件名,程序假定后缀为html文件即模板文件,而我们可以控制
183行读取tmpFilePath路径的html模板的内容到htmlContent,如果传入恶意构造的jpg即读到的是jpg的内容
再看position,定位到170行,未经处理直接拼接到generatePath,这个参数的问题与tmpFilePath的问题一致

192行调用fileutil渲染html并输出,若为jpg文件,没有合法标签故不渲染

导致写入shell

问题的根源是没有检查url和position参数的合法性问题,用户用合法上传接口上传包含恶意代码的图片构造为url,结合position构造恶意后缀即可写入webshell。


通过上传接口上传合法文件/upload/1//article/1590640638669.jpg(接口可见上一篇文章)burp修改url和position两个参数


得到shell http://xxx/mcms_war/html/1/shell.jsp

本文出自 小俊博客,转载时请注明出处及相应链接。

0

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部