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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-60137 — wpsqli 针对 CVE-2026-60137 的完整 SQLi 提取器 + 转储工具 | Kitploit
工具/GitHubGitHub/adarshthakur14777-cyber/cve-2026-60137
密码攻击漏洞分析漏洞利用Web应用程序漏洞利用信息收集Web安全渗透测试数据库安全

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
adarshthakur14777-cyber/cve-2026-60137

CVE-2026-60137

wpsqli 针对 CVE-2026-60137 的完整 SQLi 提取器 + 转储工具

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

wpsqli - WordPress SQLi 提取器(CVE-2026-60137)

一款快速、菜单驱动的数据库提取工具,利用 WordPress 核心中的 author__not_in SQL 注入漏洞。该工具纯粹专注于数据库枚举与转储,利用 REST 批量路由混淆(CVE-2026-63030)以未认证方式触达 SQLi 汇聚点。


目录

  • 概述
  • 漏洞链
  • 受影响版本
  • 功能特性
  • 安装
  • 使用方法
  • 菜单选项
  • 提取模式
  • 性能
  • 法律声明

概述

wpsqli 是一款纯 Python 工具,用于利用 WordPress 核心中的链式漏洞,实现未认证的数据库 SQL 注入。它通过批量路由混淆漏洞绕过 WordPress REST API 校验,将原始字符串载荷直接送达 WP_Query SQL 汇聚点。

该工具以速度和灵活性为设计目标:自动尝试基于 UNION 的带内提取(即时完成),随后回退到 8 线程并行布尔盲注提取,必要时最终采用顺序时间盲注提取。


漏洞链

该工具串联两个独立漏洞,实现未认证的数据库提取:

Bug A — author__not_in SQL 注入(CVE-2026-60137)

位置: wp-includes/class-wp-query.php 中的 WP_Query::get_posts()

author__not_in 参数仅在输入为数组时应用 absint() 清洗。如果传入字符串,is_array() 防护会被跳过,字符串原样通过 implode(),并被直接拼接进 SQL $where 子句。

root@kitploit:~
// Line 2404: guard only fires for ARRAYS
if ( is_array( $query_vars['author__not_in'] ) ) {
    $query_vars['author__not_in'] = array_unique( array_map( 'absint', $query_vars['author__not_in'] ) );
    sort( $query_vars['author__not_in'] );
}
// Line 2408: string passes straight through
$author__not_in = implode( ',', (array) $query_vars['author__not_in'] );
// Line 2409: raw interpolation
$where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";

Bug B — REST 批量路由混淆(CVE-2026-63030)

REST API 文章端点将 author_exclude 映射到 author__not_in,但将其声明为整数 type => 'array',因此核心会强制转换/拒绝字符串。Bug B 通过滥用 REST 批量端点(/wp-json/batch/v1)中的失同步漏洞,将字符串偷偷绕过校验。通过注入一个 wp_parse_url() 会拒绝的畸形路径引导载荷,WP_Error 被种入批量请求列表,使 $matches 与 $validation 失去同步。这使得后续子请求可以在不做参数校验的情况下被分发到错误的处理器。


受影响版本

注意: 仅当未使用持久化对象缓存(Redis/Memcached)时,才能触达 SQLi 汇聚点。


功能特性

  • 零依赖: 纯 Python 标准库,无需 pip install。
  • 三层提取:
    • 基于 UNION: 伪造一行假的 wp_posts 数据,在单个 HTTP 请求中提取完整字符串(即时)。
    • 布尔盲注(并行): 若 UNION 被对象缓存阻断,则使用 8 个并行线程配合二分搜索进行提取,每字符约 7 个请求。
    • 时间盲注(顺序): 当布尔判断返回零行时的回退方案。
  • 完整枚举: 列出数据库、表和列。
  • 表数据转储: 转储单个表、数据库中所有表,或执行完整的大规模转储并保存到带时间戳的文本文件。
  • 优雅中断: 提取过程中按 Ctrl+C 会停止当前查询并返回部分结果,而不会使会话崩溃。
  • 会话持久化: 只需连接一次,即可通过交互式菜单运行多个查询。
  • URL 清洗: 自动从主机输入中剥离路径/查询参数,防止端点重复拼接。
  • 可直接破解的输出: 用户数据转储包含 ID|user_login|user_pass 格式,带 bcrypt 哈希,可直接用于 hashcat -m 35500。

安装

无需安装,直接下载运行:

root@kitploit:~
# Clone the repository
git clone https://github.com/AdarshThakur14777-cyber/CVE-2026-60137.git
# Navigate to directory
cd CVE-2026-60137

# Run
python main.py

环境要求:

  • Python 3.8+
  • 无需任何外部包(仅标准库)

使用方法

启动交互式菜单:

root@kitploit:~
python main.py

示例会话

root@kitploit:~
============================================================
  WP SQLi Extractor v3 (CVE-2026-60137)
============================================================
------------------------------------------------------------
  CONNECTION
   0. Connect / Change target
   1. Check target (version + vuln confirm)
------------------------------------------------------------
  FINGERPRINTING
   2. MySQL version (@@version)
   3. Current database name
   4. Current DB user
   5. WordPress table prefix
   6. Dump wp_users (ID, login, pass hash)
   7. Custom SQL query
   8. Extract all fingerprints (2+3+4+5)
------------------------------------------------------------
  ENUMERATION
   9. List all databases
  10. List all tables (current DB)
  11. List columns of a table
------------------------------------------------------------
  DUMPING
  12. Dump a specific table
  13. Dump all tables (current DB)
  14. Full dump to file (all tables + all rows)
------------------------------------------------------------
  15. Exit
============================================================

Choice: 0
Target (https://example.com): https://target.com
Skip TLS verify? (y/N):
Sleep delay for time-based (default 3):

[*] Connecting to https://target.com ...
[+] Batch endpoint: https://target.com/wp-json/batch/v1
[*] WordPress version: 6.9.4 VULNERABLE
[*] Testing UNION-based extraction ...
[!] UNION not available — trying boolean blind (8 parallel threads) ...
[+] Boolean-blind mode active (8 threads, ~7 reqs/char)
[+] Time-based also works (0.69s vs 3.78s)

菜单选项

连接

选项描述
0连接目标(自动清洗 URL)
1验证漏洞及当前生效的提取模式

指纹采集

枚举

选项描述
9列出 MySQL 服务器上的所有数据库
10列出当前或指定数据库中的所有表
11列出指定表的所有列名

数据转储

选项描述
12转储单个表(可设置行数限制并保存到文件)
13转储当前数据库中的所有表
14完整大规模转储 — 所有表 + 所有行,保存到带时间戳的文件

提取模式

该工具按速度优先级自动尝试三种提取模式:

1. 基于 UNION(即时)

伪造一行假的 wp_posts 数据,将提取值以十六进制编码写入 post_title 列(用 ||..|| 标记包裹)。REST API 会将其回显在响应中——整个字符串只需单个 HTTP 请求。

  • 每个查询仅 1 个请求
  • 仅在未启用持久化对象缓存时有效
  • 使用 CONCAT(0x7c7c, HEX(CAST((<expr>) AS CHAR)), 0x7c7c) 对结果进行编码

2. 布尔盲注(并行)

当 UNION 不可用时,使用 8 个并行线程配合二分搜索逐字符提取。布尔判断依据是注入的 AND (condition) 是否返回行。

  • 每字符约 7 个请求(在 8 个线程间并行)
  • 在 ASCII 范围 32-126 上进行二分搜索
  • 提取前先通过二分搜索预扫描字符串长度
  • 以已完成字符数显示进度

3. 时间盲注(顺序)

当布尔判断返回零行(例如站点没有已发布的文章)时的回退方案。使用 IF(condition, SLEEP(N), 0) 将真值编码在响应延迟中。

  • 每字符约 7 × sleep_delay 秒(顺序执行)
  • 最慢的模式,但在空数据库上可用

性能

示例耗时(布尔盲注,8 线程)


法律声明

本工具仅用于经授权的安全测试和教育目的。你只应对自己拥有或已获得明确书面测试许可的系统使用本工具。未经授权访问计算机系统属于违法行为。

本工具的作者和贡献者不对因使用本软件而造成的任何滥用或损害负责。请自行承担使用风险。


致谢

  • 漏洞链由 Adam Kues(Assetnote / Searchlight Cyber)发现
  • UNION 伪造文章技术:sergiointel/wp2shell-poc(原创者)
  • 实现改编自:Icex0/wp2shell-poc
  • 路由混淆检测技术:Hadrian / Icex0

许可证

本工具仅用于教育和经授权的测试目的。

下载工具
版本范围状态
6.8.0 – 6.8.5存在 SQLi 漏洞,但链路不可达(批量混淆于 6.9.0 引入)
6.9.0 – 6.9.4存在漏洞 — 完整未认证链路
7.0.0 – 7.0.1存在漏洞 — 完整未认证链路
6.8.6已修补(SQLi)
6.9.5已修补
7.0.2已修补
7.1-beta2+已修补
选项描述
2提取 MySQL 版本(SELECT @@version)
3提取当前数据库名称(SELECT DATABASE())
4提取当前数据库用户(SELECT CURRENT_USER())
5提取 WordPress 表前缀
6转储 wp_users 表(ID、登录名、密码哈希)
7执行自定义 SQL 查询
8依次运行所有指纹采集(选项 2-5)
模式每个查询的请求数速度适用场景
UNION1即时无对象缓存且列数匹配时
布尔盲注(8 线程)~7 × 字符串长度 / 8快UNION 被阻断但有行数据时
时间盲注~7 × sleep × 字符串长度慢布尔判断无行可用时
提取内容字符数请求数耗时
MySQL 版本~20~140~15 秒
数据库名称~15~105~12 秒
数据库用户~25~175~20 秒
表前缀~5~35~5 秒
wp_users 行(200 字符)200~1400~2 分钟