点击蓝字 关注我们
日期:2024/05/24 作者:Corl7 介绍:对某cms开源版本代码审计。
0x00 前言
本次审计的是该cms
是开源版本的,不是付费版本的。该cms
采用Spring-boot+Freemarker+Shiro
框架,由于该博客也是3
年左右没有更新了,因此也是存在较多问题。
0x01 H2 JNDI注入漏洞
通过查看pom.xml
,发现引入了h2
。
并且在resource/application-h2.yml
文件中开启了web
显示,路径为/console
。
使用JNDI-Injection
生成一个ping dnslog
的链子。
复制1.8
的ldap
的,粘贴进JDBC URL
框中,Saved Settings
选择Generic JNDI Data Source
,并点击测试连接。
dnslog
成功接收到请求。
0x02 Freemarker 模板注入漏洞
在ThemeController
中发现了一个上传接口,首先判断文件是否为空,然后判断后缀是否是.zip
,如果都不满足,则调用BlogUtils.uploadTheme
方法进行处理。
按住Ctrl
,使用鼠标左键点击uploadTheme
,查看此方法。该方法首先获取系统所在路径,然后再获取模板上传路径,如果路径不存在的话进行创建,然后再判断上传的文件是否存在,如果不存在则进行解压,并删除压缩包。由此过程可以看出,并没有对压缩包内容进行校验,也没有对上传文件内容进行校验,因此可以上传一个恶意的zip
文件。
该接口位于主题管理的上传主题处。
在源码中复制一个主题,并在index.ftl
文件中,添加一个弹计算器的payload
,并将全部文件进行压缩。
点击上传主题,上传制作的zip
文件,并启用该主题,访问博客首页,成功弹出计算器。
0x03 Shiro权限绕过
查看pom.xml
文件,发现引入了shiro1.4.0
版本,该版本是存在Shiro721
反序列化的,但是使用padding oracle
攻击跑了好长时间都没有跑出来,于是没再继续跑。除了存在Shiro721
反序列化漏洞,也是存在Shiro
权限绕过漏洞的。
抓取添加栏目功能的数据包,将cookie
删除后,发送数据包后跳转到登录页面。
直接在请求路径最后面添加/
,直接绕过了权限认证请求成功,页面并没有发生跳转。
返回页面查看,数据添加成功。
0x04 总结
通过审计该cms
,发现的主要问题都是一些组件存在的漏洞,而并非代码层面出现的问题。代码层面写的确实不错,很多地方都做了限制以及校验。
点此亲启
原文始发于微信公众号(宸极实验室):『代码审计』记一次对某 CMS 代码审计
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论