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

目录

 

🍨 Shiro-550(CVE-2016-4437)

🍦 1、漏洞原理

🍦 2、影响版本

🍦 3、漏洞利用

🍨 Shiro-721

🍦 1、漏洞原理

🍦 2、影响版本

🍦 3、漏洞利用

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

🍦 1、漏洞原理

🍦 2、影响版本

🍦 3、漏洞验证

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

🍦 1、漏洞原理

🍦 2、影响版本

🍦 3、漏洞验证


 

🍨 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 

 

 

 

 

 

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Apache Shiro是一个开源的安全框架,用于处理身份验证、授权、密码和会话管理。其中,CVE-2016-4437是Apache Shiro的一个反序列化漏洞,影响版本为Apache Shiro<=1.2.4。该漏洞的利用方式是通过发送带有"rememberMe"的Cookie来触发漏洞。攻击者可以利用该漏洞执行任意代码,可能导致服务器被入侵。\[1\] 漏洞的原理是Apache Shiro框架提供了"记住我"的功能,用户登录成功后会生成一个经过加密和编码的Cookie,其中的key为"rememberMe",值是经过反序列化、AES加密和Base64编码处理的。攻击者可以通过构造特定的Cookie来触发反序列化漏洞,从而执行恶意代码。\[2\] 为了检测Apache Shiro漏洞,可以使用一些工具或脚本。例如,可以使用shiro_rce.py脚本来执行反弹shell语句,该脚本需要指定目标URL和要执行的命令。\[3\]通过执行这个脚本,可以检测目标服务器是否存在Apache Shiro漏洞。 需要注意的是,漏洞检测只是为了帮助管理员发现潜在的安全风险,建议在合法授权的情况下使用这些工具,并及时修复漏洞以保护系统的安全。 #### 引用[.reference_title] - *1* [Apache shiro 漏洞总结](https://blog.csdn.net/smli_ng/article/details/126096023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437 )](https://blog.csdn.net/weixin_60329395/article/details/127399081)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

离陌lm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值