Anonymous 发表于 2026-2-1 16:53:00

JAVA代码审计shiro鉴权绕过案例

免责申明

本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。

一、前言    跟着小朋友学了一段代码审计,根据小朋友老师说的寻找到一套源码去进行审计,发现鉴权方式使用shiro方式进行鉴权,回头去看老师鉴权绕过专项课程,最后成功绕过, 这里记录一下当时挖掘的场景,比较简单的一个源码。二、鉴权分析

    这里查看项目结构,可以看到在java代码当中有几个特点,分别为Spring Boot的启动器以及对应的Controller层和Filter等信息,初步可以确定为Spring项目。

    查看对应的Filter以及对应preHandle两个方法,都未发现存在鉴权等方式,于是这里专项看到别的信息,发现存在shiro的组件,shiro本身是一个对应的用来鉴权的组件,这里分析是否shiro在进行权限的认证。

    这里可以明显看到针对一些路由进行鉴权,当然也有不健全的情况,大致分为以下情况。/user/路径下:鉴权/sa/路径下:鉴权/jz/路径下:鉴权/login路径:不鉴权/index路径:不鉴权静态资源方法:不鉴权/**所有路径不鉴权。三、鉴权绕过    这里进行查看对应的shiro版本,这里因为是开源的,本地可以直接进行搭建环境,于是直接看pom.xml文件即可,如果师傅们遇到闭源的源码,可以直接看对应lib包当中寻找版本。

    可以看到为1.3.2版本,这个版本通过网上寻找发现是存在鉴权绕过漏洞的,这里进行验证。

    这里搭建好了之后可以进行尝试绕过认证。

    正常访问jz下的路由是被拦截的,但是我们根据鉴权规则,来构造一个前置不鉴权的路径,在进行跳转路径指向后台路径,即可绕过鉴权。

    其中这些是不健全的路径,尝试利用。










页: [1]
查看完整版本: JAVA代码审计shiro鉴权绕过案例