stanislav-web/OpenDoor
GitHub: stanislav-web/OpenDoor
一款基于 Python 的 OWASP 兼容 Web 目录扫描器,用于自动化发现目录、Subdomain 与敏感资源。
Stars: 918 | Forks: 187
# OWASP WEB 目录扫描器 [](https://twitter.com/intent/tweet?text=Wow:&url=https://github.com/stanislav-web/OpenDoor)

| Python | Linux | macOS | Windows |
|---|---|---|---|
| 3.12 | [](https://github.com/stanislav-web/OpenDoor/actions/workflows/ci-linux-py312.yml) | [](https://github.com/stanislav-web/OpenDoor/actions/workflows/ci-macos-py312.yml) | [](https://github.com/stanislav-web/OpenDoor/actions/workflows/ci-windows-py312.yml) |
| 3.13 | [](https://github.com/stanislav-web/OpenDoor/actions/workflows/ci-linux-py313.yml) | [](https://github.com/stanislav-web/OpenDoor/actions/workflows/ci-macos-py313.yml) | [](https://github.com/stanislav-web/OpenDoor/actions/workflows/ci-windows-py313.yml) |
| 3.14 | [](https://github.com/stanislav-web/OpenDoor/actions/workflows/ci-linux-py314.yml) | [](https://github.com/stanislav-web/OpenDoor/actions/workflows/ci-macos-py314.yml) | [](https://github.com/stanislav-web/OpenDoor/actions/workflows/ci-windows-py314.yml) |
**OpenDoor OWASP** 是一个多功能的控制台网站扫描器。
此应用程序查找可能的登录入口点、`Index of/` 目录、网络外壳、受限访问点、子域名、隐藏数据和大备份文件。
扫描使用内置字典和外部字典进行。
通过使用代理服务器提供匿名性和速度。
该软件仅用于信息目的,并在 GPL 许可证下作为开源产品发布。
该项目是 [BlackArch Linux](https://blackarch.org/webapp.html) 的一部分,并由社区维护和支持。

[](https://github.com/stanislav-web/OpenDoor/graphs/contributors)
[](https://badge.fury.io/py/opendoor)
[](https://www.python.org/) [](https://codecov.io/github/stanislav-web/OpenDoor)
[](https://opendoor.readthedocs.io/en/latest/)
[](https://github.com/stanislav-web/OpenDoor/actions/workflows/codacy.yml)
[](https://github.com/stanislav-web/OpenDoor/actions/workflows/dependency-review.yml)
[](https://github.com/stanislav-web/OpenDoor/actions/workflows/github-code-scanning/codeql)
[Read The Docs](https://opendoor.readthedocs.io/)
* *Current 5.1.0 (20.04.2026)*
- 目录:110977
- 子域名:255359
#### [更新日志](CHANGELOG.md) (最近更改)
## v5.1.0 (20.04.2026)
- (功能)[#35](https://github.com/stanislav-web/OpenDoor/issues/35) 在导出的 `txt`、`html` 和 `json` 报告中添加响应大小。
- (功能)[#39](https://github.com/stanislav-web/OpenDoor/issues/39) 功能请求:输出响应代码
- (功能) 通过添加新的唯一路径 +27965 来填充目录
- (错误修复) 报告插件现在能正确创建嵌套目标目录,例如 `reports/example.com` 而不是 `reportsexample.com`。
- (错误修复) 修复了辅助工具中的 BOM 解码行为,并与修正后的实现对齐了测试。
- (优化) 重构了 `FileSystem.readline()` 以批处理加载行,显著降低峰值内存使用。
- (优化) 通过预计算处理参数并减少重复的字符串格式化工作,优化了 `Reader.get_lines()` 热路径。
- (优化) 使用已提交任务跟踪优化了 `ThreadPool.add()` 的提交端会计逻辑。
- (优化) 在基准测试验证后,保持 `Reader` 扩展过滤器在快速内存路径上。
- (优化) 更新了基准测试工作流程文档和项目维护流程。
- (优化) 修复了批处理 `readline()` 处理的基准测试回调计数问题。
- (优化) 改进了终端、颜色、日志异常和彩虹日志在测试下的兼容性。
- (测试) 测试套件扩展到 400+ 个测试。
- (测试) 添加了回归测试和边缘情况覆盖,用于报告大小传播。
- (测试) 在核心、HTTP、报告器、浏览器、代理、套接字、日志、终端、颜色和文件系统模块上添加了广泛的单元测试覆盖。
#### 主要功能
- ✅ 目录扫描器
- ✅ 子域名扫描器
- ✅ 多线程控制
- ✅ 扫描报告
- ✅ HTTP(S) (端口) 支持
- ✅ 长连接保持活动
- ✅ 无效证书扫描
- ✅ HTTP(S)/SOCKS 代理
- ✅ 动态请求头
- ✅ 自定义单词列表前缀
- ✅ 自定义单词列表、代理、忽略列表
- ✅ 调试级别 (1-3)
- ✅ 扩展过滤器
- ✅ 自定义报告目录
- ✅ 自定义配置向导(使用随机技术)
- ✅ 分析技术:
* 检测重定向
* 检测 `Index of/` Apache
* 检测大文件
* 跳过 200 OK 重定向
* 跳过空页面
* 启发式检测无效页面
* 空白成功页面过滤器
* 证书必需页面
- ✅ 随机化技术:
* 每个请求随机用户代理
* 每个请求随机代理
* 单词列表洗牌
* 单词列表过滤器
#### 通过 PIP 安装
```
python3 -m ensurepip --upgrade
python3 -m pip install --upgrade pip
```
#### 从 PyPI 全局安装
如果您希望将该包作为正常的 Python CLI 工具使用,请使用此方法。
##### Linux / macOS
```
python3 -m pip install --upgrade opendoor
opendoor --host http://www.example.com
```
##### Windows (PowerShell)
```
winget install Python.Python.3.14
py -m pip install --upgrade pip
py -m pip install --upgrade opendoor
opendoor --host http://www.example.com
```
#### 使用 pipx 全局安装(推荐给终端用户)
##### macOS / Homebrew
```
brew install pipx
pipx ensurepath
pipx install opendoor
opendoor --host http://www.example.com
```
##### Linux / 通用环境
安装 `pipx`,使用系统包管理器或首选 Python 工具,然后执行:
```
pipx ensurepath
pipx install opendoor
opendoor --host http://www.example.com
```
##### Windows (PowerShell)
```
winget install Python.Python.3.14
py -m pip install --user pipx
py -m pipx ensurepath
# 重新打开 PowerShell 确保路径
pipx install opendoor
opendoor --host http://www.example.com
```
`pipx` 是在不手动管理项目虚拟环境的情况下进行隔离 CLI 安装的首选选项。
#### 本地安装并运行
如果您希望直接从仓库运行 OpenDoor 而不全局安装,请使用此模式。
##### Linux / macOS
```
git clone https://github.com/stanislav-web/OpenDoor.git
cd OpenDoor/
python3 -m pip install -r requirements.txt
chmod +x opendoor.py
python3 opendoor.py --host http://www.example.com
```
##### Windows (PowerShell)
```
git clone https://github.com/stanislav-web/OpenDoor.git
cd OpenDoor
py -m pip install -r requirements.txt
py opendoor.py --host http://www.example.com
```
#### 本地开发安装
如果您正在开发、测试或修改项目,请使用此模式。
##### Linux / macOS
```
git clone https://github.com/stanislav-web/OpenDoor.git
cd OpenDoor/
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
python -m pip install -r requirements-dev.txt
python -m pip install -e .
opendoor --host http://www.example.com
```
##### Windows (PowerShell)
#### 从源代码安装以供操作系统发行版 / 维护者使用
此流程适用于 Linux 发行版、打包维护者和发布流水线。
##### Linux / macOS
```
git clone https://github.com/stanislav-web/OpenDoor.git
cd OpenDoor/
python3 -m pip install --upgrade build
python3 -m build
```
##### Windows (PowerShell)
```
git clone https://github.com/stanislav-web/OpenDoor.git
cd OpenDoor
py -m pip install --upgrade build
py -m build
```
生成的构件:
```
dist/opendoor-5.0.1.tar.gz
dist/opendoor-5.0.1-py3-none-any.whl
```
此流程更适用于 Linux 发行版和打包维护者,因为:
- 源代码包和 wheel 通过标准 Python 构建后端生成
- 安装可由发行包管理器管理
- 更新可与操作系统更新一起交付
- 无需传统的 `setup.py install` 流程
该软件包已包含在 BlackArch Linux 中,此构建布局旨在使为其他 Linux 发行版打包更加容易。
#### 手动安装已构建的 wheel
##### Linux / macOS
```
python3 -m pip install dist/opendoor-5.0.1-py3-none-any.whl
opendoor --host http://www.example.com
```
##### Windows (PowerShell)
```
py -m pip install dist/opendoor-5.0.1-py3-none-any.whl
opendoor --host http://www.example.com
```
#### 更新
##### PyPI 安装
Linux / macOS:
```
python3 -m pip install --upgrade opendoor
```
Windows:
```
py -m pip install --upgrade opendoor
```
##### pipx 安装
```
pipx upgrade opendoor
```
##### 源代码检出
Linux / macOS:
```
git pull
python3 -m pip install -e .
```
Windows:
```
git pull
py -m pip install -e .
```
#### 帮助
```
usage: opendoor [-h] [--host HOST] [-p PORT] [-m METHOD] [-t THREADS]
[-d DELAY] [--timeout TIMEOUT] [-r RETRIES]
[--keep-alive] [--accept-cookies] [--debug DEBUG] [--tor]
[--torlist TORLIST] [--proxy PROXY] [-s SCAN] [-w WORDLIST]
[--reports REPORTS] [--reports-dir REPORTS_DIR]
[--random-agent] [--random-list] [--prefix PREFIX]
[-e EXTENSIONS] [-i IGNORE_EXTENSIONS] [--sniff SNIFF]
[--update] [--version] [--examples] [--docs]
[--wizard [WIZARD]]
options:
-h, --help show this help message and exit
required named options:
--host HOST Target host; example: --host http://example.com
Application tools:
--update Show package update instructions
--version Show current version
--examples Show usage examples
--docs Open documentation
--wizard [WIZARD] Run scanner wizard from your config
Debug tools:
--debug DEBUG Debug level -1 (silent), 1 - 3
Reports tools:
--reports REPORTS Scan reports (json,std,txt,html)
--reports-dir REPORTS_DIR
Path to custom reports directory
Request tools:
-p PORT, --port PORT Custom port (default 80)
-m METHOD, --method METHOD
Request method (HEAD by default)
-d DELAY, --delay DELAY
Delay between threaded requests
--timeout TIMEOUT Request timeout (30 sec default)
-r RETRIES, --retries RETRIES
Maximum reconnect retries (default 3)
--keep-alive Use keep-alive connection
--accept-cookies Accept and route cookies from responses
--tor Use built-in proxy list
--torlist TORLIST Path to custom proxy list
--proxy PROXY Custom permanent proxy server
--random-agent Randomize user-agent per request
Sniff tools:
--sniff SNIFF Response sniff plugins
(indexof,collation,file,skipempty,skipsizes=NUM:NUM...)
Stream tools:
-t THREADS, --threads THREADS
Allowed threads
Wordlist tools:
-s SCAN, --scan SCAN Scan type: directories or subdomains
-w WORDLIST, --wordlist WORDLIST
Path to custom wordlist
--random-list Shuffle scan list
--prefix PREFIX Append path prefix to scan host
-e EXTENSIONS, --extensions EXTENSIONS
Force selected extensions for scan session, e.g. php,json
-i IGNORE_EXTENSIONS, --ignore-extensions IGNORE_EXTENSIONS
Ignore selected extensions for the scan session, e.g. aspx,jsp
```
#### 维护者
- @stanislav-web (开发者)
### 测试
```
python3 -m pip install -r requirements-dev.txt
python3 -m unittest
```
### 构建
```
python3 -m pip install -r requirements-dev.txt
python3 -m build
```
### 代码规范
```
python3 -m pip install -r requirements-dev.txt
ruff check .
```
### 贡献者
如果您愿意为项目的发展做出贡献,欢迎提交拉取请求。
您也可以提出想法并在我的清单中创建任务。
[](https://deepwiki.com/stanislav-web/OpenDoor) [](http://www.gnu.org/licenses/gpl-3.0)
### 文档
- [Read The Docs](https://opendoor.readthedocs.io/)
- [Opendoor OWASP 烹饪书](https://github.com/stanislav-web/OpenDoor/wiki)
- [问题](https://github.com/stanislav-web/OpenDoor/issues)
- [PyPI 软件包](https://pypi.org/project/opendoor/)
标签:CI, Python, Python CLI, SEO, Web 安全, Web 探测, 关键词检索, 大数据, 开源框架, 持续集成, 文件枚举, 无后门, 目录扫描, 目录枚举, 目录爆破, 目录遍历漏洞, 移动安全, 路径遍历, 逆向工具