Public-CMS漏洞分析
nihao123123 发表于 河南 漏洞分析 1194浏览 · 2024-01-24 07:47

任意文件上传

漏洞详情


抓包 修改后缀为-site.zip

即可目录穿越上传到任意位置

漏洞代码分析

V4.0.202302.c版本
src/main/java/com/publiccms/controller/admin/sys/SysSiteAdminController.java

查看代码就能看出没做任何校验
要求结尾必须是-size.zip ,之后文件就被拼接写入了

新版修复方法




对目录穿越进行了限制

组合拳RCE

代码执行



跟入execute方法

这里首先对传入的执行脚本的名字进行判断,是否为空,是否是"sync.bat", "sync.sh", "backupdb.bat", "backupdb.sh"四个其中一个
如果是backup的话,就会去获取数据库的配置信息,写入到cmdarray中。不是的话 就把parameters(输入的参数)判断是否符合正则匹配的要求,然后写入到cmdarray的第一位中

这里对脚本进行判断 存在就写入路径到cmdarray的第一位,不存在就新建再写,之后使用Runtime.getRuntime().exec执行。
可是脚本都是固定的 前端输入的是脚本的名字和调用的参数(参数也进行了过滤)。无法修改内容

任意文件替换


查看替换方法 发现对../并未检测

0 条评论
某人
表情
可输入 255