针对 CVE-2020-3452 的概念验证脚本 — Cisco ASA/FTD 路径遍历漏洞。支持自动提取已知的目标文件,并出于安全考虑对成功下载次数设置硬性上限。仅用于授权的安全测试和研究目的。
针对 CVE-2020-3452 的概念验证脚本 — Cisco ASA/FTD 路径遍历漏洞。支持自动提取已知目标文件,并设置成功下载的硬性上限以确保安全。仅用于授权的安全测试和研究目的。
# CVE-2020-3452 PoC — Cisco ASA/FTD 路径遍历
这是一个修改版的概念验证利用脚本,针对 [CVE-2020-3452](https://nvd.nist.gov/vuln/detail/CVE-2020-3452),该漏洞是影响 Cisco ASA 和 FTD 设备的目录遍历漏洞。
该漏洞允许未经认证的远程攻击者通过构造的 HTTP 请求在受影响系统上**读取任意文件**。此脚本通过尝试获取预定义的常见配置、门户和 HTML 文件列表,并将成功响应保存到本地来自动化该过程。
> **⚠️ 仅限授权测试和研究使用。请负责任地使用。**
---
## ✅ 功能特性
- 🔁 遍历一个精选的目标文件路径列表,这些路径已知存在于 ASA/FTD 系统上。
- ✅ 仅写入返回 **HTTP 200** 且**内容非空**的响应。
- 🧮 在 **200 次成功下载**后自动停止,以防止滥用或产生噪音。
- 🗂️ 将所有文件写入 `output/` 目录,并自动创建该目录。
- 🔒 对所有输出文件名进行清理,防止意外的路径遍历或注入。
- 🧼 抑制 SSL 警告(ASA 证书通常是自签名的)。
---
## 🖥️ 使用方法
```bash
# Install dependencies
pip install requests
# Run the script
python3 cve_2020_3452.py <target-host>
```
示例:
```bash
python3 cve_2020_3452.py firewall.example.com
```
所有成功获取的文件将保存到 `output/` 文件夹中。
你也可以交互式地运行脚本:
```bash
python3 cve_2020_3452.py
```
---
## 🔧 配置
| 变量 | 描述 |
| -------------------- | --------------------------------------------------------------------- |
| `MAX_SUCCESS_WRITES` | 脚本在此数量的 HTTP 200 文件保存后停止(默认:200)。 |
| `OUTPUT_DIR` | 文件将被写入的目录(默认:`output/`)。 |
你可以安全地在脚本顶部编辑这些值。
---
## 📚 背景
* **CVE**:[CVE-2020-3452](https://nvd.nist.gov/vuln/detail/CVE-2020-3452)
* **受影响版本**:
* Cisco ASA:9.6 – 9.14.1.10
* Cisco FTD:6.2.3 – 6.6.0.1
* **影响**:允许未经认证的攻击者通过构造的 URL 遍历来披露文件。
---
## ⚠️ 法律与伦理声明
本脚本**仅用于教育和授权安全研究目的**。
* 🛑 **请勿**在你不拥有或未被明确授权测试的系统上使用此工具。
* 🧑⚖️ 未经授权的使用可能违反当地、联邦或国际法律,且不符合道德规范。
* 🤝 使用本工具的一切责任由你自行承担。
---
## 🙏 致谢
* 原作者:[@freakyclown](https://github.com/cygenta)
* 修改内容:硬编码成功次数上限、文件卫生处理、输出目录隔离
---
## 📜 许可证
MIT 许可证 — 详见 [`LICENSE`](https://github.com/abrewer251/cve-2020-3452_cisco_asa_pathtraversal/blob/main/LICENSE)。
将此文件包含在你的仓库中可简化环境搭建:
requests
MIT License
Copyright (c) 2025
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...