CerberusMrXi/WordPress-KeepInMind-CVE-2026-9271-Exploit

GitHub: CerberusMrXi/WordPress-KeepInMind-CVE-2026-9271-Exploit

一款用于检测和评估 WordPress KeepInMind 插件存储型 XSS 漏洞(CVE-2026-9271)的授权安全测试工具,支持单目标评估、批量扫描与报告生成。

Stars: 0 | Forks: 0

# KIM-Guardian Pro ### CVE-2026-9271 — WordPress KeepInMind 存储型 XSS 评估 [![Python](https://img.shields.io/badge/Python-3.8%2B-3776AB?logo=python&logoColor=white)](#installation) [![Version](https://img.shields.io/badge/Version-1.0.0-orange)](#version-history) [![CVE](https://img.shields.io/badge/CVE-2026--9271-red)](#vulnerability-details) [![Plugin](https://img.shields.io/badge/KeepInMind-%E2%89%A4%200.8.4.2-critical)](#vulnerability-details) [![License](https://img.shields.io/badge/License-Educational%20%2F%20Defensive-blue)](#license) [![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey)](#installation) **用于 CVE-2026-9271 的授权安全评估工具** 作者:**Sudeepa Wanigarathna** · 工具:**KIM-Guardian Pro v1.0** 主脚本:[`CVE-2026-9271.py`](./CVE-2026-9271.py) k
## 目录 - [概述](#overview) - [漏洞详情](#vulnerability-details) - [功能](#features) - [安装说明](#installation) - [快速开始](#quick-start) - [使用指南](#usage-guide) - [命令参考](#command-reference) - [输出与报告](#output--reporting) - [故障排除](#troubleshooting) - [仓库结构](#repository-layout) - [版本历史](#version-history) - [免责声明](#disclaimer) - [作者与致谢](#author--credits) - [许可证](#license) ## 概述 **CVE-2026-9271** 是 WordPress **KeepInMind**(Dashboard Notes)插件中的一个**存储型跨站脚本(XSS)**问题。对笔记内容的过滤不充分,使得低权限的已认证用户(Contributor+)能够存储 HTML/JS 代码,这些代码会在管理员的浏览器中执行,从而可能导致**管理员会话被劫持/账户被接管**。 **KIM-Guardian Pro**(`CVE-2026-9271.py`)是一款 Python 评估工具,供授权测试人员用于: - 检测 KeepInMind 的安装情况及版本范围 - 运行**安全的测试模式**评估(覆盖标记,不进行凭据捕获) - 批量扫描 URL 列表以检测插件存在及易受攻击版本 - 将结果持久化保存在 `reports/` 下的 SQLite 数据库和文本报告中 - 可选运行本地捕获 / Web UI,用于受控的实验室模拟 ## 漏洞详情 | 属性 | 值 | |---|---| | **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/` | ### 评估流程(宏观层面) 1. 作为 Contributor+ 用户进行认证(当提供凭据时) 2. 确认已安装 KeepInMind 并记录 WordPress / 插件版本 3. 通过笔记 REST API 注入**测试** payload(默认) 4. 验证标记是否出现在笔记渲染的位置 5. 清理注入的笔记(除非使用 `--no-cleanup`) 6. 将评估元数据保存到 SQLite 和文本报告中 ## 功能 ### 核心能力 | 能力 | 描述 | |---|---| | 插件检测 | 检查 KeepInMind 安装路径和版本字符串 | | WordPress 版本 | 在可用时提取 generator / 版本元数据 | | 安全测试模式 | 默认的覆盖标记,在不捕获凭据的情况下证明 XSS | | 已认证评估 | 使用 Contributor+ 凭据登录以进行完整的 REST 注入 | | Payload 清理 | 评估后删除注入的笔记 | | 批量扫描 | 多线程 URL 列表扫描,检测插件及易受攻击版本 | | SQLite 历史 | 将评估记录存储在 `kim_guardian.db` 中 | | 文本报告 | 在 `reports/` 下写入带有时间戳的报告 | | 捕获服务器 | 可选的本地 HTTP 监听器,用于实验室凭据捕获演练 | | Web UI | 可选的 Flask 仪表板(`web` 模式) | ### 操作控制 | 能力 | 描述 | |---|---| | 详细日志 | 在 `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 # 此脚本使用的推荐附加组件: 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 ``` ## 快速开始 ``` # 帮助 / 模式 python3 CVE-2026-9271.py --help # 安全的单目标评估(默认:测试 payload) python3 CVE-2026-9271.py assess https://lab.example \ -u contributor -p 'password' -v # 批量版本 / 插件扫描 python3 CVE-2026-9271.py bulk -f targets.txt -w 8 -o bulk_results.txt # 列出 SQLite 中最近的评估 python3 CVE-2026-9271.py db --list --limit 20 # 本地捕获服务器(仅限实验室) python3 CVE-2026-9271.py capture --port 5000 # 可选的 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 ``` 工作流程: 1. 打印横幅并创建唯一的 payload ID 2. 认证(如果提供了 `-u` / `-p`) 3. 检测 KeepInMind + WordPress 版本 4. 注入并验证安全测试标记 5. 清理笔记(除非使用 `--no-cleanup`) 6. 将结果持久化到数据库 + `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. 实验室攻击模拟(仅限授权环境) 需要 attacker/capture 基础 URL 和 `--real`。在实验室环境中,建议将捕获保留在 localhost。 ``` # 终端 1 — 捕获监听器 python3 CVE-2026-9271.py capture --port 5000 # 终端 2 — 使用捕获 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 endpoint | | `/captured` | 最近捕获的条目(实验室审查) | ### 6. 批量扫描 ``` # targets.txt — 每行一个 URL python3 CVE-2026-9271.py bulk -f targets.txt -w 5 -o bulk_scan_results.txt # 或以逗号分隔的 URL 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` | 单目标 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` | 开启 | 优先使用安全测试 payload | | `-r`, `--real` | 关闭 | 启用实验室攻击 payload(需要 `--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 ``` ### SQLite | 文件 | 用途 | |---|---| | `kim_guardian.db` | 评估历史(目标、版本、漏洞标志、风险、持续时间) | ### 日志 | 路径 | 用途 | |---|---| | `logs/kim_pro_*.log` | 每次运行的应用程序日志 | ### 批量报告字段 - URL - WordPress 版本 - 插件版本 - 是否易受攻击(根据版本启发式算法判断是/否) - REST 是否可访问 - WP-Login 是否可达 ## 故障排除 | 症状 | 尝试方法 | |---|---| | 认证失败 | 确认 Contributor+ 凭据;检查 `/wp-login.php`;使用 `-v` | | 未检测到插件 | 验证 KeepInMind 路径/名称;尝试使用详细模式 | | REST 注入失败 | 确认认证 + nonce;通过 Burp 使用 `--proxy` 进行检查 | | 超时 / 连接错误 | 增加 `--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) ``` ## 版本历史 ### v1.0.0 — 首次发布 - 针对 CVE-2026-9271 的单目标 KeepInMind 评估 - 安全测试 payload(默认)及可选的实验室捕获模拟 - 插件 / WordPress 版本检测 - REST 笔记注入、验证和清理 - 批量多线程扫描 - SQLite 持久化 + 文本报告 - 捕获服务器和可选的 Flask Web UI - 代理、超时和详细日志支持 ## 免责声明 本项目按“原样”提供,用于**防御性安全研究**和**授权的渗透测试**。 使用本软件即表示您同意: 1. 您只会针对您拥有或被明确授权测试的系统。 2. 您了解适用的计算机滥用和数据保护法律。 3. 作者和贡献者对因滥用造成的损害、数据丢失或法律后果**不承担任何责任**。 如果您在不属于您的生产系统中发现此问题,请遵循与网站所有者和插件维护者进行负责任的漏洞披露原则。 **未经授权访问计算机系统是违法行为。** ## 作者与致谢 | 角色 | 姓名 | |---|---| | **工具作者** | Sudeepa Wanigarathna | | **CVE** | CVE-2026-9271 | | **工具** | KIM-Guardian Pro v1.0 | | **主脚本** | `-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. ```
**仅供授权的安全测试使用。**
标签:Python, Splunk, WordPress, XSS, 字符串匹配, 无后门, 漏洞情报, 逆向工具