用途
WordPress Penetration Testing 是一项用于对 WordPress 安装进行综合安全评估的技能。资料称其适用于用户要求“渗透测试 WordPress 站点”“扫描 WordPress 漏洞”“枚举 WordPress 用户、主题或插件”等场景。WordPress 驱动约 35% 的网站,因此被视为安全测试的重要目标。
前置条件
所需工具:
- WPScan(Kali Linux 中预装)
- Metasploit Framework
- Burp Suite 或 OWASP ZAP
- Nmap(用于初始发现)
- cURL 或 wget
所需知识:
- WordPress 架构与结构
- Web 应用测试基础
- HTTP 协议理解
- 常见 Web 漏洞(OWASP Top 10)
输出与交付物
- WordPress 枚举报告:版本、主题、插件、用户
- 漏洞评估:已识别的 CVE 与错误配置
- 凭据评估:弱密码发现
- 利用证明:Shell 访问文档
核心工作流
阶段 1:WordPress 发现
通过 curl 检查 WordPress 特征,例如检查页面中是否包含 wordpress、wp-content、wp-includes;检查常见路径 /wp-login.php、/wp-admin/、/wp-content/、/xmlrpc.php;检查 meta generator 标签;也可使用 Nmap 的 http-wordpress-enum 脚本检测。
关键 WordPress 文件与目录包括:/wp-admin/(管理后台)、/wp-login.php(登录页)、/wp-content/(主题、插件、上传)、/wp-includes/(核心文件)、/xmlrpc.php(XML-RPC 接口)、/wp-config.php(配置文件,若安全则不可访问)、/readme.html(版本信息)。
阶段 2:基础 WPScan 枚举
支持基础扫描、使用 API token 获取漏洞数据、激进检测模式、输出到文件、JSON 输出和详细输出等命令形式。
阶段 3:WordPress 版本检测
可通过 WPScan 版本检测,或手动检查 readme.html、feed、页面中的 ?ver=、meta generator、RSS 源等。版本来源包括 HTML 中的 meta generator 标签、readme.html 文件、RSS/Atom 源、JavaScript/CSS 文件版本。
阶段 4:主题枚举
可枚举所有主题、仅枚举存在漏洞的主题,并结合检测模式。也可手动检测 wp-content/themes/ 路径,通过 searchsploit 搜索主题漏洞,或检查主题版本与 readme.txt。
阶段 5:插件枚举
可枚举所有插件、仅枚举存在漏洞的插件,支持 aggressive 与 mixed 检测模式,也可手动发现 wp-content/plugins/ 路径。资料列出常见待检查插件并使用 searchsploit 搜索插件漏洞,并检查插件版本。
阶段 6:用户枚举
可使用 WPScan 枚举用户、指定数量用户,也可手动通过 author ID 枚举、JSON API 用户枚举、REST API 用户枚举以及登录错误枚举。
阶段 7:综合枚举
可运行所有枚举模块。枚举标志包括:at(所有主题)、vt(存在漏洞的主题)、ap(所有插件)、vp(存在漏洞的插件)、u(用户 1-10)、cb(配置备份)、dbe(数据库导出)。
阶段 8:密码攻击
支持单用户爆破、从文件读取多用户、密码攻击线程、XML-RPC 爆破、API 限速爆破,以及使用 cewl 生成针对性字典。密码攻击方法包括 wp-login(标准登录表单)、xmlrpc(XML-RPC 多调用,更快)、xmlrpc-multicall(每请求多个密码)。
阶段 9:漏洞利用
在获得凭据后,可使用 Metasploit 的 wp_admin_shell_upload 进行管理员 Shell 上传,或使用插件漏洞利用(如 Slideshow Gallery)。也可手动利用:通过主题/插件编辑器在 404.php 或 functions.php 中添加 PHP 反向 Shell,或使用 weevely 后门;或制作恶意插件,打包上传后通过 webshell 访问。
阶段 10:进阶技巧
XML-RPC 利用:检查是否启用、列出可用方法、通过 multicall 爆破。支持通过代理扫描(Tor、HTTP 代理、Burp Suite 代理),以及 HTTP 基本认证和强制 SSL/TLS 等。
快速参考
WPScan 枚举标志:-e at、-e vt、-e ap、-e vp、-e u、-e cb、-e dbe。
常见 WordPress 路径:/wp-admin/、/wp-login.php、/wp-content/uploads/、/wp-includes/、/xmlrpc.php、/wp-json/。
WPScan 命令示例:基础扫描、所有枚举、密码攻击、激进模式。
限制与约束
法律注意事项:测试前须获得书面授权;保持在定义范围内;记录所有测试活动;遵循负责任披露。
技术限制:WAF 可能阻止扫描;速率限制可能阻止爆破;部分插件可能存在误报;XML-RPC 可能被禁用。
检测规避:使用随机用户代理 --random-user-agent;限制请求 --throttle 1000;使用代理轮换;在被监控站点避免使用激进模式。
故障排查
WPScan 未显示漏洞:使用 API token 获取漏洞数据库;尝试激进检测模式;检查 WAF 是否阻止扫描;确认 WordPress 确实已安装。
爆破被阻止:改用 XML-RPC 方法而非 wp-login;添加限速 --throttle 500;使用不同用户代理;检查 IP 封锁/fail2ban。
无法访问管理面板:确认凭据正确;检查双因素认证;检查 IP 白名单限制;检查登录 URL 是否更改(安全插件)。