CORS跨域配置错误
将以下提示词粘贴到你的 AI 对话框中:
请根据官方安装指南 https://skillhub.cn/install/skillhub.md,将 @user_3c6cb52e/cors-cross-origin-misconfiguration-382n 安装到您的 AI 助手中。
技能介绍
要解决的问题
浏览器调试遇到 CORS 报错时,最常见的反应是放宽配置:把 Origin 原样反射回去、在 allowlist 里加个 *、顺手允许 credentials。这些"临时修复"会把同源策略变成攻击路径——任何能跨域读到响应的页面,都可能拿到已认证 API 的数据。本技能聚焦三类信任边界上的配置错误:源反射、通配符信任、allowlist 解析失误,尤其关注 Access-Control-Allow-Credentials: true 同时开启的场景。
核心能力
当响应中出现 Access-Control-Allow-Origin、Access-Control-Allow-Credentials 或 preflight 头时,技能按固定流程快速分诊:
- 发送构造的
Origin头,观察服务端是否原样反射; - 分别带与不带 credentials 测试,确认能否跨域读取认证接口;
- 用攻击者子域和解析器边界情况(大小写、后缀/前缀匹配、
nullorigin)探测 allowlist 绕过; - 若可读数据敏感,进一步评估对账户或租户的影响。
它还覆盖几类典型绕过链:沙箱 iframe、file:、data: 带来的 Origin: null;SameSite Cookie 与通配符子域 allowlist 组合,使子域 XSS 能读取主站 API;缺少 Vary: Origin 导致 CDN 把同一缓存响应发给不同源;正则校验缺少锚点或允许 - 造成的 origin 校验绕过;以及内网 API 被通配符 CORS 信任后,结合端口扫描与 DNS 重绑定被利用。SCENARIOS.md 深入 JSONP 劫持、同源策略内部机制,以及 localhost:8981/localhost:8982 双站攻击实验环境。
适用边界
技能输出审计结论与 PoC 建议,不自动修复——确认绕过后仍需手工重写 allowlist 并验证 Vary: Origin。它只处理浏览器 CORS 信任模型,CSRF、OAuth 回调绑定、JWT 问题分别路由到对应技能。SCENARIOS.md 中部分载荷涉及社工场景(水坑攻击、蜜罐去匿名化),仅用于授权测试环境,而非攻击教程。
使用场景
- 排查线上CORS报错时,验证`Access-Control-Allow-Origin`反射是否信任任意源,以及带credentials请求是否可被跨域读取
- 审计微服务网关CORS策略,检查通配符加credentials组合、allowlist后缀匹配绕过与`Origin: null`接受
- 渗透测试中利用子域XSS加SameSite Cookie链,验证通配符子域allowlist是否允许读取主站认证API
- 排查CDN缓存串源问题:响应反射Origin但缺少`Vary: Origin`,导致不同来源用户拿到同一缓存响应
适合人员
- 后端或全栈工程师:浏览器频繁报CORS错误,需要判断该放行源还是收紧配置,避免把任意反射当成修复
- 安全研究员或红队成员:授权渗透中想确认CORS allowlist能否被构造Origin、正则缺陷或`null`源绕过
- API网关或基础设施维护者:负责暴露认证接口的服务,需要评估通配符、白名单与内网暴露的组合风险
- 前端工程师:调用认证API时收到CORS拦截,想定位是请求配置问题还是服务端信任边界缺陷