shiro

目录

爆key拿shell

不用说了,基操了

权限绕过

在shiro权限绕过漏洞中,利用的问题是shiro拦截器先于spring boot执行,并且二者的匹配模式不同,最终导致访问的url1和shiro处理的url2以及spring路由的url3不同,导致shiro拦截器起不到应有的作用从而被绕过。

shiro框架通过拦截器来实现对用户访问权限的控制和拦截。Shiro常见的拦截器有anon,authc等。 | anon:匿名拦截器,不需登录就能访问,一般用于静态资源,或者移动端接口。如登陆,忘记密码,js等 authc:登录拦截器,需要登录认证才能访问的资源。我们通过在配置文件中配置需要登录才可访问的url,实现对url的访问控制。 其中,url的路径表达式为Ant格式。?:匹配一个字符 *:匹配零个或多个字符串 **:匹配路径中的零个或多个路径

CVE-2016-6802

利用条件 shrio<1.3.2 利用方法 在访问路径前加上/任意目录名/../,即可绕过访问

不能访问:
http://127.0.0.1:8080/samples-web-1.2.4/account/index.jsp

bypass:
http://127.0.0.1:8080/aaa/../samples-web-1.2.4/account/index.jsp

CVE-2020-1957

利用条件 Apache Shiro <= 1.5.1 , Spring 框架中只使用 Shiro 鉴权

利用方法 /demo/..;/admin/index (其中demo为授权路径,admin/index为鉴权路径)

CVE-2020-11989

利用条件: Apache Shiro <= 1.5.2 需要后端特定的格式才可进行触发, 即:Shiro权限配置必须为 /xxx/*

后端逻辑必须是/xxx/{variable}且variable的类型必须是String(如@Requestmapping=/admin/{name})

利用方法:admin/page%252fABCDEFG,其中admin/page为鉴权路径,ABCDEFG为随意字符串

CVE-2020-13933

实质上是对11989的绕过

利用条件 Apache Shiro < 1.6.0 Spring 框架中只使用 Shiro 鉴权 需要后端特定的格式才可进行触发即:Shiro权限配置必须为 /xxxx/* 同时后端逻辑必须是 /xxx/{variable} 且 variable 的类型必须是 String

利用方法:/srpingboot_shiro_war/admin/%3bABCDEFG

CVE-2020-17510

也是bypass

Shiro < 1.7.0 Spring 框架中只使用 Shiro 鉴权 需要后端特定的格式才可进行触发即:Shiro权限配置必须为 /xxxx/* 同时后端逻辑必须是 /xxx/{variable} 且 variable 的类型必须是 String

利用方法 /admin/%2e

以下paylaod都可用

/%2e

/%2e/

/%2e%2e

/%2e%2e/

CVE-2020-17523

也可以是把它看作CVE-2020-13933的绕过

利用条件 Apache Shiro < 1.7.1 Spring 框架中只使用 Shiro 鉴权 需要后端特定的格式才可进行触发即:Shiro权限配置必须为 /xxxx/* 同时后端逻辑必须是 /xxx/{variable} 且 variable 的类型必须是 String

利用方法 /srpingboot_shiro_war/admin/%20