本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。
跟着小朋友学了一段代码审计,根据小朋友老师说的寻找到一套源码去进行审计,发现鉴权方式使用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下的路由是被拦截的,但是我们根据鉴权规则,来构造一个前置不鉴权的路径,在进行跳转路径指向后台路径,即可绕过鉴权。 代码审计培训,目前进行到第四期课程,其中包含基础+进阶课程,其中课程内容如下,一次报名一直可以听(往期+未来)。同时具备内部资料以及靶场相关福利,想要了解的师傅可以冲了。