【渗透测试】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反序列化漏洞,利用综合利用工具进行测试,进行秘钥爆破。

 

【渗透测试】Apache Shiro系列漏洞_第1张图片

 【渗透测试】Apache Shiro系列漏洞_第2张图片

 

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/,即可绕过权限校验,访问到管理页面。

 

【渗透测试】Apache Shiro系列漏洞_第3张图片

【渗透测试】Apache Shiro系列漏洞_第4张图片 

 

 

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或者替换为其他字母也可以)

【渗透测试】Apache Shiro系列漏洞_第5张图片

【渗透测试】Apache Shiro系列漏洞_第6张图片 

【渗透测试】Apache Shiro系列漏洞_第7张图片 

 

 

 

 

 

你可能感兴趣的:(网络安全,apache,web安全,安全,网络安全)