Cisco ASA / FTD 在 WebVPN SAML SP ACS 端点 (/+CSCOE+/saml/sp/acs) 中存在反射型 XSS 漏洞。已在 cisco-sa-asaftd-xss-multiple-FCB3vPZe 中修补。
本仓库包含:
xss.html — 针对授权目标的人工可验证 PoC。src/ — 发现 + 范围感知验证管道。docs/ — 方法论和道德规范。┌──────────┐ ┌──────────────┐ ┌────────────────────┐ ┌────────────────┐ ┌──────────────┐
│ Shodan │ → │ 范围匹配 │ → │ 手动批准 │ → │ 金丝雀检查 │ → │ MD 报告 │
│ (3 个 dork)│ │ (H1, BC, +) │ │ 默认拒绝 │ │ 无 JS 执行 │ │ 草稿 │
└──────────┘ └──────────────┘ └────────────────────┘ └────────────────┘ └──────────────┘
每个阶段都会生成一个可检查的 JSON 文件,并且独立运行。
验证器不会触发 alert()。它会 POST 一个包含原始 <>"' 的唯一金丝雀字符串,并对响应体进行评级。确认命中后会生成包含原始 xss.html 的 Markdown 草稿,供项目审核人员在自己的浏览器中验证。
验证是经过批准控制的。范围匹配仅仅是起点;当前项目简介才是合同。在进行主动验证之前,请查看项目政策并在 data/validation_approvals.json 中设置目标的批准标志。
git clone https://github.com/cruxN3T/CVE-2020-3580
cd CVE-2020-3580
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp creds.env.example creds.env
$EDITOR creds.env # 添加你的 Shodan 密钥,可选添加 H1/BC 令牌
creds.env 已被 .gitignore 忽略。.gitignore 阻止任何匹配 *.env 的文件(除了 *.env.example),同时阻止 data/ 和 reports/,以将目标列表和验证摘录保留在公共仓库之外。
默认的端到端命令有意在验证前停止:
python -m src.pipeline run
这将写入 data/validation_approvals.json,所有批准标志都设置为 false。请检查每个当前项目简介,并且仅当目标仍在范围内且允许此类验证时,才将所有三个字段设置为 true:
{
"manual_policy_reviewed": true,
"automated_testing_allowed": true,
"cve_testing_allowed": true
}
然后进行验证并生成报告草稿:
python -m src.pipeline validate
python -m src.pipeline report
或者分阶段执行:
python -m src.pipeline discover # Shodan → data/shodan_hits.json
python -m src.pipeline scope # 匹配 → data/in_scope.json
python -m src.pipeline approve-template # → data/validation_approvals.json
python -m src.pipeline validate # 仅对已批准的金丝雀检查
python -m src.pipeline report # → reports/<host>__CVE-2020-3580.md
仅用于私有实验室目标时,validate --allow-unapproved 可绕过批准文件。对于无法进行证书验证的旧设备,validate --allow-insecure-tls 可为此运行禁用 TLS 验证。
scope 阶段无需任何 API 密钥即可运行——它从 arkadiyt/bounty-targets-data 获取数据。在 creds.env 中添加 H1_USERNAME + H1_API_TOKEN 可在设置 H1_LIVE=true 时,通过 HackerOne 黑客 API 补充最新数据。
所有配置都在 creds.env 中。请参阅 creds.env.example 获取完整列表。值得关注的参数:
SCOPE_PLATFORMS — 逗号分隔。默认值为 hackerone,bugcrowd。如果需要更广泛的覆盖范围,可添加 intigriti 和 yeswehack。TARGET_RPM — 每个主机的每分钟请求数。默认值为 10。没有理由不要提高此值。TLS_VERIFY — 默认为 true。REQUIRE_VALIDATION_APPROVAL — 默认为 true。docs/ETHICS.md — 范围匹配授权了什么、未授权什么,以及验证器故意不做什么。docs/METHODOLOGY.md — 反射评级的工作原理以及每个阶段存在的原因。不是大规模利用工具。不是 0day。不能替代在平台上提交前阅读项目简介。范围匹配器是起点;策略文本才是合同。
MIT。请参阅 LICENSE。