一、OFCMS内容管理系统-SSTL模板注入rce
通用漏洞,看看技术架构,pom文件是否有三方漏洞,比如发现应用freemarker组件,这个是个模板组件,常见漏洞有SSTL模板注入rce,我们尝试去审计和利用。
搭建环境,通过源码一步步分析
先寻找具体位置,通过前端界面大概知道是模板模块
burp找个请求包,发现接口为
admin/cms/template/save.json
全局搜索admin/cms/template,找到java文件
找到具体的方法save,为第一个保存模板
通过打断点分析,加入恶意标签<#assign value=“freemarker.template.utility.Execute”?new() >${value(“calc.exe”)}
点击保存
发现后端接受到pathFile、fileName参数值后未经过过滤防护,重新writeString写入更新文件,保存成功
访问404.html,触发恶意标签,后端访问组件freemarker.template.utility.Execute从而执行命令
二、华夏ERP-sql注入
一步步分析~
看看组织架构mybatis
全局搜索${看看是否存在没处理的预编译数据语句,找个爆发点status参数
查询java文件调用关系,向上回溯,一般底层调用xml的sql片段不会直接到控制层,那大概率会在map
继续向上回溯调用关系,追踪status传参
追踪到getMsgCountByStatus方法
继续向上追溯,发现到了控制层
查看上下文关系,发现是msg/getMsgCountByStatus接口
定位前端位置,msg英文翻译信息意思,通过打断点验证前端信息模块
发现status参数可控,且后端未进行预处理,这里大概率会有sql注入,用sqlmap本地验证,发现sql注入成功
三、华夏ERP-权限绕过
发现权限鉴定用的是自己写的filter,用于tomcat组件,只要是请求会先去filter进行判定。只要包含下面截图相关html就不会拦截进行方放行。
使用…/绕过去读取敏感信息
四、华夏ERP-fastjson反序列
通用漏洞,查看pom文件,发现应用fastjson组件且1.2.55版本号存在rce漏洞。
一步步分析找爆发点,全局搜索JSON.parseObject
直接到控制层/updateUser 接口,beanJson为传入info的值
前端找到爆发点
发包验证成功
五、ruoyi-sql注入
通过${全局搜索找到爆发参数params.dataScope
继续向上追溯
到达控制层,可以看到是在前端角色管理-导出功能
漏洞验证:
抓包发现导出功能未有爆发参数,手动传入params[dataScope]参数
sqlmap验证成功
五、ruoyi-任意文件下载
这个比较简单,全局搜索down,找到控制层CommonController.java
分析代码,发现传入filename参数进行下载,未进行过滤
构造接口,common/download?filename=,此功能是需要在登录后,所以要用已登录的cookie进行验证,验证成功