0


【渗透测试】Apache Shiro系列漏洞

目录


🍨 Shiro-550(CVE-2016-4437)

**🍦 **1、漏洞原理

Apache Shiro框架提供了记住我(RememberMe)的功能,关闭浏览器再次访问时无需再登录即可访问。shiro默认使用CookieRememberMeManager,对rememberMe的cookie做了加密处理,在CookieRememberMeManaer类中将cookie中rememberMe字段内容先后进行序列化、AES加密、Base64编码操作。服务器端识别身份解密处理cookie的流程则是:

获取rememberMe cookie ->base64 解码->AES解密(加密密钥硬编码)->反序列化(未作过滤处理)。但是AES加密的密钥Key被硬编码(密钥初始就被定义好不能动态改变的)在代码里,这就意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者可以构造一个恶意的对象,并且对其序列化、AES加密、base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终就造成了反序列化的RCE漏洞。只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都可能会导致该漏洞的产生.硬编码是将数据直接嵌入到程序或其他可执行对象的源代码中。如果在返回包的 Set-Cookie 中存在 rememberMe=deleteMe 字段,那么就可能存在此漏洞。

**🍦 **2、影响版本

Apache Shiro <= 1.2.4

**🍦 **3、漏洞利用

输入任意账号密码,勾选Remember me,登录,查看发现响应包中存在rememberMe=deleteMe字段,说明可能存在Shiro反序列化漏洞,利用综合利用工具进行测试,进行秘钥爆破。

6cb1d4f2657449d88eb3e37215e69131.png

878cd73b95d5415f83df3d7dfcc57ec8.png

🍨 Shiro-721

**🍦 **1、漏洞原理

由于Apache Shiro cookie中通过AES-128-CBC模式加密的rememberMe字段存在问题,用户可通过Padding Oracle加密生成的攻击代码来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行rememberMe cookie通过AES-128-CBC模式加密,易受到Padding Oracle攻击。可以通过结合有效的rememberMe cookie作为Padding Oracle攻击的前缀,然后精⼼制作rememberMe来进⾏反序列化攻击。Tip:在1.2.4版本后,shiro已经更换AES-CBC为AES-GCM,无法再通过Padding Oracle 遍历 key

**🍦 **2、影响版本

Apache Shiro <= 1.4.1

**🍦 **3、漏洞利用

利用工具的攻击方法同Shiro550一致,下面简单讲述手动攻击的步骤

🍬(1)利用技巧

🍼 该漏洞需要登录后获取到合法的Cookie: rememberMe=XXX后才可以进行利用, 看起来不是很好利用 但实际上有一些网站是开放注册的, 而且这个洞不需要知道服务端密钥 所以后续的利用还是可以同Shiro-550一样利用, 而且这里是AES加密的, 自带过WAF属性 ;

🍼 如果攻击没有生效, 可以试一下删除Cookie中的JSESSIONID 字段, 很多时候这个字段存在的话, 服务端不会去处理 rememberMe。

🍬(2)攻击流程

🍼 登录网站(勾选Remember),并从Cookie中获取合法的RememberMe。

🍼 使用RememberMe cookie作为Padding Oracle Attack的前缀。

🍼 加密 ysoserial 的序列化 payload,以通过Padding Oracle Attack制作恶意RememberMe。

🍼 重放恶意RememberMe cookie,以执行反序列化攻击。

🍨 Shiro认证绕过漏洞(CVE-2020-1957)

**🍦 **1、漏洞原理

在Apache Shiro 1.5.2以前的版本中,在使用Spring动态控制器时,攻击者通过构造`..;`这样的跳转,可以绕过Shiro中对目录的权限限制。

**🍦 **2、影响版本

Apache Shiro <= 1.5.2

**🍦 **3、漏洞验证

直接请求管理页面/admin/,无法访问,将会被重定向到登录页面;构造恶意请求/xxx/..;/admin/,即可绕过权限校验,访问到管理页面。

af2f269ff0ce4089869723e752474052.png

12a19040861a44d0a6317772543e28d7.png

🍨 Shiro 身份验证绕过 (CVE-2020-13933)

**🍦 **1、漏洞原理

Apache Shiro身份验证绕过漏洞CVE-2020-11989的修复补丁存在缺陷,在1.5.3及其之前的版本,由于shiro在处理url时与spring仍然存在差异,依然存在身份校验绕过漏洞由于处理身份验证请求时出错,远程攻击者可以发送特制的HTTP请求,绕过身份验证过程并获得对应用程序的未授权访问。

**🍦 **2、影响版本

Apache Shiro < 1.6.0

**🍦 **3、漏洞验证

访问后台时,通过路径/admin/或者/login/均无法进入后台,返回404或者提升需要登录,通过构造特殊的payload即可绕过验证,登录后台

payload:http://ip/admin/%3bxxx(不要xxx或者替换为其他字母也可以)

ae4f38bd2b8446b99e9989cd3f37f463.png

f7adcf7a53d24bd8b56c11a8a2433507.png

a3bb8279ee51494ba14a9034a94f7169.png

标签: apache web安全 安全

本文转载自: https://blog.csdn.net/weixin_53972936/article/details/127642462
版权归原作者 离陌lm 所有, 如有侵权,请联系我们删除。

“【渗透测试】Apache Shiro系列漏洞”的评论:

还没有评论