recon-skills高级技巧:8种CORS漏洞变体与防御绕过实战案例

recon-skills高级技巧:8种CORS漏洞变体与防御绕过实战案例

【免费下载链接】recon-skillsRecon & pentest skill pack. CORS, XSS, SQLi, SSRF, RCE, WordPress, MCP, cloud, subdomain takeover, and more. Field-tested. MIT. Full write-up at hiago.sh项目地址: https://gitcode.com/gh_mirrors/re/recon-skills

在网络安全渗透测试领域,跨域资源共享(CORS)漏洞是最常见且危害深远的安全问题之一。recon-skills作为一套经过实战验证的渗透测试技能包,提供了全面的CORS漏洞检测与利用方案。本文将深入解析8种CORS漏洞变体,结合真实案例展示检测方法与防御绕过技巧,帮助安全测试人员系统性掌握CORS漏洞挖掘能力。

recon-skills提供全面的CORS漏洞检测与利用框架

为什么CORS漏洞值得重点关注?

CORS(Cross-Origin Resource Sharing)是现代浏览器实现跨域资源访问的安全机制,但其配置复杂性导致大量网站存在安全隐患。recon-skills通过对600+域名的实战分析发现,约7-8%的WordPress站点存在可利用的CORS漏洞,而这些漏洞往往导致敏感数据泄露、用户会话劫持甚至完全的账户接管。

在redteam渗透测试中,CORS漏洞常与子域接管、CSRF等攻击链组合使用,形成高风险利用路径。recon-skills的cors-chain-automation模块专门设计了批量检测与利用工具,可高效识别并验证各类CORS变体。

8种CORS漏洞变体全解析

V1:经典Origin反射+Credentials

特征:Access-Control-Allow-Origin(ACAO)头反射请求的Origin值,同时Access-Control-Allow-Credentials(ACAC)设为true。

检测命令

curl -sk -I "https://TARGET/wp-json/wp/v2/users" -H "Origin: https://evil.com" | grep -iE "access-control"

预期结果:返回ACAO: https://evil.com和ACAC: true头信息。

频率:约7-8%的WordPress站点 |影响:HIGH-CRITICAL

典型案例:landscaping-service.com、legal-firm.com等多个行业网站存在此漏洞,攻击者可直接读取管理员敏感信息。

V2:Null Origin反射(沙箱iframe绕过)

特征:ACAO头设置为"null",ACAC设为true,允许来自null origin的跨域请求。

检测命令

curl -sk -I "https://TARGET/wp-json/wp/v2/users" -H "Origin: null" | grep -iE "access-control"

利用方式:通过沙箱化iframe(使用data: URI或file://协议)发送Origin: null请求。

频率:罕见(约1/20的CORS漏洞) |影响:HIGH

典型案例:familydental.com通过此方式泄露患者预约信息。

V3:通配符(无Credentials)

特征:ACAO头设置为"*",但ACAC未设置或设为false,允许任何源读取资源但不包含凭证。

检测命令

curl -sk -I "https://TARGET/" -H "Origin: https://evil.com" | grep -i "access-control"

频率:约3%的网站 |影响:MEDIUM(只读,无认证数据)

典型案例:patientportal.com、nothingbundtcakes.com等网站的公开资源可被跨域读取。

V4:带凭证的Preflight(仅OPTIONS)

特征:仅在OPTIONS预检请求中反射Origin并设置ACAC: true,GET请求不返回CORS头。

检测命令

curl -sk -X OPTIONS "https://TARGET/wp-json/wp/v2/users" \ -H "Origin: https://evil.com" \ -H "Access-Control-Request-Method: GET" | grep -iE "access-control"

注意:需结合适当的Content-Type才能实现跨域读取。

频率:未知(测试不足) |影响:HIGH-CRITICAL

V5:需认证端点泄露(401/403仍返回CORS)

特征:即使返回401/403状态码,仍在响应中包含CORS头,当管理员登录时可泄露敏感数据。

检测命令

curl -sk -I "https://TARGET/wp-json/gf/v2/forms" -H "Origin: https://evil.com" | grep -iE "access-control"

频率:几乎100%的CORS漏洞站点 |影响:HIGH

典型案例:多个零售网站的gravity-forms端点存在此问题,可泄露客户表单数据。

V6:多Origin反射

特征:多个不同的Origin都能被反射,表明服务器未正确验证来源。

检测命令

for origin in "https://evil.com" "https://attacker.com" "https://not-trusted.com"; do curl -sk -I "https://TARGET/wp-json/wp/v2/users" -H "Origin: $origin" | grep -i "access-control" done

频率:常见 |影响:HIGH

典型案例:某房地产网站允许任意子域的Origin反射,扩大了攻击面。

V7:插件特定CORS

特征:仅在特定插件的REST命名空间上存在CORS漏洞,标准WordPress端点可能安全。

检测命令

for ep in /wp-json/wp/v2/users /wp-json/gravity-pdf/v1/ /wp-json/solidwp-mail/v1/logs; do curl -sk -I "https://TARGET${ep}" -H "Origin: https://evil.com" | grep -iE "access-control" done

频率:因插件而异 |影响:HIGH(插件特定数据)

典型案例:某娱乐网站的gravity-pdf插件端点泄露PDF生成数据。

V8:仅Staging环境存在的CORS

特征:生产环境安全,但staging/测试环境存在CORS漏洞,可能导致内部数据泄露。

检测命令

curl -sk -I "https://staging.TARGET/wp-json/wp/v2/users" -H "Origin: https://evil.com" | grep -iE "access-control" curl -sk -I "https://TARGET/wp-json/wp/v2/users" -H "Origin: https://evil.com" | grep -iE "access-control"

频率:未知(测试不足) |影响:HIGH(取决于staging数据敏感性)

典型案例:某零售连锁的staging环境泄露产品定价策略和客户数据。

CORS漏洞检测完整矩阵脚本

recon-skills提供了全面的CORS检测脚本,可一次性测试所有8种变体:

#!/bin/bash # cors-full-matrix.sh - Test ALL 8 CORS variations on a target # Usage: ./cors-full-matrix.sh target.com TARGET="$1" echo "=== CORS Full Matrix for $TARGET ===" # 要测试的端点列表(可根据需要扩展) ENDPOINTS=( "/wp-json/wp/v2/users" "/wp-json/wp/v2/posts" "/wp-json/wp/v2/pages" "/wp-json/wp/v2/media" "/wp-json/wp/v2/comments" "/wp-json/wp/v2/settings" "/wp-json/wp/v2/statuses" "/wp-json/wp/v2/tags" "/wp-json/wp/v2/categories" "/wp-json/wp-site-health/v1" "/wp-json/wc/v3/products" "/wp-json/gf/v2/forms" ) # 要测试的Origin列表 ORIGINS=( "https://evil.com" "null" "https://TARGET.evil.com" "https://eviltarget.com" ) echo "V1/V2/V3/V6 — 标准GET CORS反射" for ep in "${ENDPOINTS[@]}"; do for origin in "${ORIGINS[@]}"; do origin_url="${origin/TARGET/$TARGET}" cors=$(curl -sk -I "https://$TARGET${ep}" -H "Origin: $origin_url" 2>/dev/null | grep -iE "access-control-allow-origin|access-control-allow-credentials") [ -n "$cors" ] && echo "[$ep] [$origin_url] $cors" done done echo "V4 — OPTIONS预检CORS" for ep in "${ENDPOINTS[@]}"; do cors=$(curl -sk -X OPTIONS "https://$TARGET${ep}" \ -H "Origin: https://evil.com" \ -H "Access-Control-Request-Method: GET" 2>/dev/null | grep -iE "access-control") [ -n "$cors" ] && echo "[OPTIONS $ep] $cors" done echo "V8 — Staging环境CORS对比" for prefix in "staging" "dev" "stage" "test" "admin" "api"; do cors=$(curl -sk -I "https://${prefix}.${TARGET}/wp-json/wp/v2/users" -H "Origin: https://evil.com" 2>/dev/null | grep -iE "access-control") [ -n "$cors" ] && echo "[${prefix}.${TARGET}] $cors" done

常见CORS检测错误与规避方法

  1. 仅测试/users端点:这是最常见的错误!WordPress的CORS漏洞影响所有REST端点,而非仅限于用户接口。recon-skills建议至少测试/users、/posts、/pages、/media及插件特定命名空间。

  2. *混淆ACAO:与可利用CORS:单独的Access-Control-Allow-Origin: *是安全的,只有当它与Access-Control-Allow-Credentials: true同时出现时才存在风险。

  3. 忽略OPTIONS预检请求:某些站点只在OPTIONS请求中返回CORS头,必须同时测试GET和OPTIONS方法。

  4. 忽视需认证的端点:即使返回401/403状态码的端点也可能泄露CORS头,当管理员登录时这些端点会返回200状态并泄露敏感数据。

  5. 遗漏Staging环境:很多组织只在生产环境修复CORS问题,staging环境常被忽视,可通过测试staging.、dev.等子域发现漏洞。

  6. 使用Shell循环处理大量端点:zsh数组扩展在超过5个端点时可能静默失败,recon-skills推荐使用Python实现大规模CORS探测。

CORS漏洞防御最佳实践

基于recon-skills的实战经验,推荐以下防御措施:

  1. 严格验证Origin:使用精确的允许列表而非通配符或宽松的正则表达式,特别注意不要信任子域。

  2. 正确配置Credentials:避免在允许非信任源时设置ACAC: true,确保敏感端点始终要求认证。

  3. 全面测试所有端点:包括标准和插件特定的REST命名空间,不要只测试常见端点。

  4. 统一环境安全策略:确保staging、dev等非生产环境与生产环境采用相同的CORS安全配置。

  5. 实施自动化检测:将cors-full-matrix.sh集成到CI/CD流程,在部署前发现CORS问题。

总结

CORS漏洞是Web应用安全的重要威胁,但其多样性和隐蔽性使检测工作充满挑战。recon-skills通过系统化的8种变体分类和自动化检测工具,为安全测试人员提供了全面的CORS漏洞挖掘解决方案。通过本文介绍的技术和工具,您可以显著提高CORS漏洞检测效率,有效评估并缓解这一常见安全风险。

要开始使用recon-skills进行CORS漏洞检测,请克隆仓库:

git clone https://gitcode.com/gh_mirrors/re/recon-skills

完整的CORS变体检测矩阵和自动化工具可在redteam/cors-chain-automation目录中找到,包括详细的使用说明和案例分析。

【免费下载链接】recon-skillsRecon & pentest skill pack. CORS, XSS, SQLi, SSRF, RCE, WordPress, MCP, cloud, subdomain takeover, and more. Field-tested. MIT. Full write-up at hiago.sh项目地址: https://gitcode.com/gh_mirrors/re/recon-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考