Public-CMS漏洞分析
任意文件上传
漏洞详情
抓包 修改后缀为-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 字