Files
2025-09-25 03:24:57 +08:00

47 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 如何判断靶标是否使用 Shiro
**1. 查看 HTTP 请求和响应头**
这是最直接也最常用的方法。当一个网站使用 Shiro 框架时,它通常会在 HTTP 响应中设置一个特定的 Cookie
------
- **Shiro Cookie:** 检查 HTTP 响应头中的 `Set-Cookie` 字段。如果存在名为 **`rememberMe`** 的 Cookie,那么目标很可能使用了 Shiro 框架
```
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=...; Path=/; HttpOnly
Set-Cookie: rememberMe=...; Path=/; HttpOnly
Content-Type: text/html;charset=UTF-8
```
这个 `rememberMe` Cookie 是 Shiro 用来记住用户登录状态的。它的值是 Base64 编码的,这正是 Shiro-550 和 Shiro-721 漏洞的核心所在
**2. 发送特定请求并观察响应**
除了查看响应头,我们还可以通过发送一个带有特定 Cookie 的请求,并观察服务器的响应来进一步确认
- **发送带无效 RememberMe Cookie 的请求:** 发送一个 GET 请求到目标网站的任意页面,并在请求头中手动添加一个 **无效的 `rememberMe` Cookie**。例如,可以设置 `rememberMe=123`
```
GET /index.jsp HTTP/1.1
Host: example.com
Cookie: rememberMe=123
```
- **观察响应头:** 如果目标使用了 Shiro,并且 `rememberMe` 验证失败,服务器通常会在响应头中返回一个 **`rememberMe=deleteMe`** 的 Cookie,来清除浏览器中无效的 Cookie。这是 Shiro 框架的一个典型特征
```
HTTP/1.1 200 OK
Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; HttpOnly
```
如果看到了 `rememberMe=deleteMe`,几乎可以 100% 确定目标使用了 Shiro 框架
**3. 利用工具自动检测**
对于渗透测试工程师来说,手动测试虽然精确,但效率较低。我们可以使用一些自动化工具来快速检测
- **ShiroScan** 这是一款专门用于检测 Shiro 漏洞的工具。它能够自动发送带有特定 Payload 的请求,并根据响应来判断目标是否使用了 Shiro,以及是否存在可利用的漏洞
- **Burp Suite 插件:** 许多 Burp Suite 插件,如 **Shiro-check**,都提供了自动检测功能。你只需在代理中浏览目标网站,插件就会自动分析请求和响应,并提示是否发现了 Shiro 的痕迹