Shiro CVE-2020-1957详细分析

💡 原文中文,约7700字,阅读约需19分钟。
📝

内容提要

Apache Shiro 1.5.2之前存在认证绕过漏洞,攻击者可通过特制请求绕过认证。该漏洞影响Shiro 1.5.0及更早版本。修复措施已在1.5.0中实施,主要是统一URL处理逻辑,以避免因路径末尾分隔符引发的安全隐患。

🎯

关键要点

  • Apache Shiro 1.5.2之前存在认证绕过漏洞,攻击者可通过特制请求绕过认证。

  • 该漏洞影响Shiro 1.5.0及更早版本,修复措施已在1.5.0中实施。

  • 漏洞有两种攻击方式,分别适用于shiro < 1.5.0和Shiro < 1.5.2。

  • 漏洞测试中,用户可以通过在请求路径末尾添加分隔符来绕过认证。

  • 漏洞的根本原因在于Shiro与Spring对URL的处理不一致。

  • 修复逻辑是统一URL处理,去掉请求路径和配置路径末尾的分隔符。

  • 在shiro 1.5.0中,修复了对分号的处理,使其与Spring一致,避免了越权访问。

🔎

延伸解读

漏洞影响范围

CVE-2020-1957漏洞影响Apache Shiro 1.5.0及更早版本,用户在使用这些版本时需特别注意。攻击者可以通过特制请求绕过认证,导致未授权访问。因此,使用这些版本的系统应尽快升级至1.5.2或更高版本,以确保安全性。

修复措施的有效性

在Shiro 1.5.0中实施的修复措施主要是统一URL处理逻辑,去掉请求路径和配置路径末尾的分隔符。这一措施有效解决了因路径处理不一致导致的安全隐患,确保了系统的认证机制不再被绕过。

攻击方式分析

该漏洞存在两种攻击方式,分别适用于Shiro 1.5.0之前和1.5.2之前的版本。攻击者可以通过在请求路径末尾添加分隔符或分号来绕过认证。这种攻击方式的根本原因在于Shiro与Spring对URL的处理不一致,开发者在实现时需特别关注这一点。

延伸问答

CVE-2020-1957漏洞的主要影响是什么?

该漏洞允许攻击者通过特制请求绕过Apache Shiro的认证,影响Shiro 1.5.0及更早版本。

如何修复CVE-2020-1957漏洞?

在Shiro 1.5.0中,通过统一URL处理逻辑,去掉请求路径和配置路径末尾的分隔符来修复该漏洞。

CVE-2020-1957漏洞的根本原因是什么?

漏洞的根本原因在于Shiro与Spring对URL的处理不一致,导致路径匹配出现问题。

CVE-2020-1957漏洞的攻击方式有哪些?

该漏洞有两种攻击方式,分别适用于Shiro版本低于1.5.0和1.5.2的情况。

在测试CVE-2020-1957漏洞时,攻击者如何绕过认证?

攻击者可以通过在请求路径末尾添加分隔符来绕过认证,导致未授权访问。

CVE-2020-1957漏洞的修复版本是什么?

CVE-2020-1957漏洞在Apache Shiro 1.5.0版本中被修复。

🏷️

标签

➡️

继续阅读