CVE-2010-3863
CVE-2010-3863 是 Apache Shiro 和 JSecurity 框架中的一个路径遍历漏洞,允许未经身份验证的远程攻击者绕过访问控制,访问原本受限的资源。
🔍 漏洞描述
在 Apache Shiro 1.0.0-incubating 版本及之前的版本,以及 JSecurity 0.9.x 版本中,路径过滤机制未能在与 shiro.ini
配置文件中的路径规则进行匹配之前对 URI 路径进行规范化处理。这意味着攻击者可以通过构造特定的请求,利用路径遍历攻击绕过访问控制,例如请求 /./account/index.jsp
,从而访问本应受限的资源。 ([seclists.org][2], [vulert.com][1])
🧠 漏洞原理
Shiro 的路径过滤器链用于根据 shiro.ini
文件中的规则对请求进行匹配和控制访问。然而,在进行路径匹配之前,Shiro 并未对 URI 路径进行规范化处理,导致攻击者可以利用路径遍历技术,通过在路径中插入 ./
或 %2e%2e/
等序列,绕过原本的访问限制。例如,/./account/index.jsp
会被错误地识别为 /account/index.jsp
,从而绕过对 /account/**
路径的认证限制。 ([seclists.org][2], [tenable.com][3])
🛡️ 影响版本
- Apache Shiro 1.0.0-incubating 及之前版本
- JSecurity 0.9.x 版本([seclists.org][2], [vulert.com][1])
✅ 解决方案
建议将 Apache Shiro 升级至 1.1.0 或更高版本,以修复此漏洞。([nvd.nist.gov][4])
🧪 漏洞利用示例
三、漏洞复现
- 进入vulhub\shiro\CVE-2010-3863
目录,输入以下命令
docker-compose build
docker-compose up -d
攻击者可以构造以下 HTTP 请求,利用路径遍历漏洞绕过访问控制:([tenable.com][5])
此时,我们可以构造恶意请求/./admin ,发现可以绕过权限校验,访问到管理页面
GET /./admin HTTP/1.1
Host: 192.168.93.1:8087
该请求通过在路径中插入 ./
,绕过了对 ./admin/**
路径的认证限制,可能导致敏感资源泄露。 ([seclists.org][2])