[!IMPORTANT]
仅限授权使用。 本工具仅用于安全研究、教育,以及对您拥有或已获得明确书面授权评估的系统进行测试。未经授权访问计算机系统属于违法行为。作者对滥用行为不承担任何责任。
目录
概述
CVE-2026-9271 是 WordPress KeepInMind(Dashboard Notes)插件中的一个存储型跨站脚本(XSS)漏洞。由于对笔记内容过滤不足,低权限的已认证用户(Contributor+ 及以上)可以存储 HTML/JS,这些脚本会在管理员浏览器中执行,进而可能导致管理员会话被入侵 / 账户被接管。
KIM-Guardian Pro(CVE-2026-9271.py)是一款面向授权测试人员的 Python 评估工具,可用于:
- 检测 KeepInMind 的安装及版本范围
- 运行安全测试模式评估(覆盖层标记,不捕获凭证)
- 批量扫描 URL 列表,检测插件是否存在以及易受攻击的版本
- 将结果持久化到 SQLite 和
reports/ 下的文本报告中
- 可选地运行本地捕获服务器 / Web UI,用于受控实验环境模拟
漏洞详情
相关攻击面
| 攻击面 | 作用 |
|---|
/wp-json/keepinmind/v1/notes | 用于创建/读取笔记的 REST API |
/wp-admin/ | 存储的笔记可能在管理后台中渲染 |
| 插件路径 | /wp-content/plugins/keepinmind-dashboard-notes/ |
评估流程(概要)
- 以 Contributor+ 用户身份进行认证(当提供凭证时)
- 确认 KeepInMind 已安装,并记录 WordPress / 插件版本
- 通过笔记 REST API 注入测试载荷(默认)
- 验证标记是否出现在笔记渲染的位置
- 清理注入的笔记(除非使用
--no-cleanup)
- 将评估元数据保存到 SQLite 和文本报告
功能特性
核心功能
操作控制
| 功能 | 说明 |
|---|
| 详细日志记录 | 在 logs/ 下输出文件 + 控制台调试信息 |
| 代理支持 | 通过 Burp 或其他 HTTP 代理路由流量 |
| 可配置超时 | 每次请求的超时时间(默认 30 秒) |
| 工作线程池 | 批量扫描的可调并发 |
安装
先决条件
- Python 3.8+
pip
- 可访问已授权目标的网络连接
安装步骤
cd /path/to/exploit
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Recommended extras used by this script:
pip install colorama beautifulsoup4 requests flask
python3 CVE-2026-9271.py --help
核心依赖
requests>=2.31.0
beautifulsoup4>=4.12.0
colorama>=0.4.6
flask>=3.0.0 # optional — web mode only
快速开始
请仅将 https://lab.example 替换为实验环境或已授权的目标。
# Help / modes
python3 CVE-2026-9271.py --help
# Safe single-target assessment (default: test payload)
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' -v
# Bulk version / plugin scan
python3 CVE-2026-9271.py bulk -f targets.txt -w 8 -o bulk_results.txt
# List recent assessments from SQLite
python3 CVE-2026-9271.py db --list --limit 20
# Local capture server (lab only)
python3 CVE-2026-9271.py capture --port 5000
# Optional web UI
python3 CVE-2026-9271.py web --host 127.0.0.1 --port 8080
使用指南
1. 查看帮助
python3 CVE-2026-9271.py --help
python3 CVE-2026-9271.py assess --help
2. 安全评估(推荐)
默认模式使用不捕获凭证的测试覆盖层。请提供 Contributor+ 凭证,以便通过 REST API 进行注入。
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor \
-p 'password' \
-v
工作流程:
- 打印横幅并创建唯一载荷 ID
- 进行认证(如果提供了
-u / -p)
- 检测 KeepInMind 与 WordPress 版本
- 注入并验证安全测试标记
- 清理笔记(除非使用
--no-cleanup)
- 将结果持久化到数据库 +
reports/kim_assessment_*.txt
3. 跳过清理
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' --no-cleanup
4. 代理 + 超时
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' \
--proxy http://127.0.0.1:8080 \
--timeout 45 \
-v
5. 实验环境攻击模拟(仅限已授权环境)
需要攻击者/捕获服务器的基础 URL 以及 --real 参数。实验环境中建议将捕获服务器保持在 localhost。
# Terminal 1 — capture listener
python3 CVE-2026-9271.py capture --port 5000
# Terminal 2 — assessment with capture endpoint
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' \
-a http://127.0.0.1:5000 \
--real \
-v
捕获服务器 UI(当服务器运行时):
| 路径 | 用途 |
|---|
/ | 捕获服务器状态页 |
/capture | 用于表单提交的 POST 端点 |
/captured | 最近捕获的条目(实验环境审查) |
6. 批量扫描
# targets.txt — one URL per line
python3 CVE-2026-9271.py bulk -f targets.txt -w 5 -o bulk_scan_results.txt
# Or comma-separated URLs
python3 CVE-2026-9271.py bulk -u "https://a.example,https://b.example" -w 3
批量检查通常包括 WordPress 识别信息、KeepInMind 版本、REST 可达性以及 wp-login.php 是否存在。
7. 数据库历史
python3 CVE-2026-9271.py db --list
python3 CVE-2026-9271.py db --list --limit 50
8. Web 界面
python3 CVE-2026-9271.py web --host 127.0.0.1 --port 8080
出于安全考虑,默认绑定到 localhost。
命令参考
全局命令
assess
bulk
capture
web
| 参数 | 默认值 | 说明 |
|---|
--host | 127.0.0.1 | 绑定地址 |
--port | 8080 | 监听端口 |
db
| 参数 | 默认值 | 说明 |
|---|
--list | 关闭 | 列出最近的评估 |
--limit | 10 | 显示的最大行数 |
输出与报告
控制台
认证、插件检测、注入、验证和清理的彩色状态输出。
文本报告
成功的 assess 运行会写入如下格式的文件:
reports/kim_assessment_YYYYMMDD_HHMMSS.txt
SQLite
| 文件 | 用途 |
|---|
kim_guardian.db | 评估历史(目标、版本、漏洞标志、风险、耗时) |
日志
| 路径 | 用途 |
|---|
logs/kim_pro_*.log | 每次运行的应用程序日志 |
批量报告字段
- URL
- WordPress 版本
- 插件版本
- 是否存在漏洞(根据版本启发式判断是/否)
- REST 是否可访问
- WP-Login 是否可达
故障排除
调试工作流程
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' \
--proxy http://127.0.0.1:8080 \
-v
仓库结构
exploit/
├── CVE-2026-9271.py # KIM-Guardian Pro (v1.0)
├── requirements.txt # Python dependencies
├── README.md # This file
├── kim_guardian.db # SQLite assessment history (generated)
├── logs/ # Runtime logs (generated)
├── reports/ # Assessment text reports (generated)
└── venv/ # Local virtualenv (optional)
版本历史
v1.0.0 — 初始版本
- 针对 CVE-2026-9271 的单目标 KeepInMind 评估
- 安全测试载荷(默认)和可选的实验环境捕获模拟
- 插件 / WordPress 版本检测
- REST 笔记注入、验证与清理
- 批量多线程扫描
- SQLite 持久化 + 文本报告
- 捕获服务器和可选的 Flask Web UI
- 代理、超时和详细日志支持
免责声明
本项目按原样提供,仅用于防御性安全研究和授权渗透测试。
使用本软件即表示您同意:
- 您只会针对自己拥有或明确获得授权测试的系统。
- 您了解适用的计算机滥用和数据保护法律。
- 作者和贡献者不对因滥用造成的损害、数据丢失或法律后果负责。
如果您在自己不拥有的生产系统中发现此问题,请遵循负责任披露流程,通知站点所有者和插件维护者。
未经授权访问计算机系统属于违法行为。
作者与致谢
许可证
Educational / Defensive Use Only
Copyright (c) 2026 Sudeepa Wanigarathna
Permission is granted to use this software for authorized security research,
education, and defensive assessment only.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.