Mr-Whiskerss/Web-Application-Enumeration-Script
GitHub: Mr-Whiskerss/Web-Application-Enumeration-Script
WebRecon 是一款将多种主流安全工具粘合在一起并辅以大量第一方漏洞检测代码的自动化 Web 应用渗透测试框架。
Stars: 6 | Forks: 2
# WebRecon
**WebRecon** 是一款单文件 Python 工具,可自动化执行外部或内部渗透测试的 Web 应用阶段 —— 包括被动 OSINT、主动侦察、内容发现、技术指纹识别、漏洞探测和报告生成 —— 并支持状态恢复、已认证扫描和多格式输出。
它是你已经使用的各种工具(nuclei、katana、arjun、ffuf、nmap、wpscan、wafw00f、subfinder 等)的粘合层,外加约 4200 行第一方 Python 检查代码,用于填补这些工具留下的空白:JWT 深度分析、CORS、安全标头、SSRF/SSTI/CRLF/Host 头注入、云元数据探测、默认凭证、favicon-hash 探测、JS 密钥提取、**差分 SQLi、反射型 XSS 上下文分析、HTTP 请求走私、动词篡改、401/403 绕过、深度 CSP 分析、OpenAPI/Swagger/WSDL schema 挖掘、VCS/源码暴露、WebSocket 发现、原型链污染、DNS 安全态势 (SPF/DMARC/DNSSEC/CAA/AXFR)** 等。
## v3.2.0 的新功能
十一个全新的第一方阶段,均采用现有的代码风格构建 —— 具备全局捕获/误报抑制功能,由共享的发现状态提供数据(并为其提供反馈),并受相同的扫描配置和 `--no-intrusive` 开关控制:
- **DNS 安全态势** — SPF / DMARC / DNSSEC / CAA 审查 + 区传送 (AXFR) 尝试 *(Phase 1)*
- **API schema 发现** — 解析 OpenAPI / Swagger / WSDL,并将发现的 endpoint + 参数输入到下游的每个注入阶段 *(Phase 3)*
- **源码 / VCS / 配置文件暴露** — `.git`、`.svn`、`.hg`、`.DS_Store`、`.env`、`.htpasswd`、备份/交换文件(均受内容签名控制) *(Phase 3)*
- **HTTP 方法与动词篡改** — 危险动词、TRACE/XST、实时 PUT 上传测试、基于动词的认证绕过 *(Phase 4)*
- **401 / 403 绕过** — 路径规范化和标头覆盖技术 *(Phase 4)*
- **深度 CSP 分析** — 标记 `unsafe-inline`、`unsafe-eval`、通配符来源、缺失的 `object-src` / `base-uri` / `frame-ancestors` *(Phase 4)*
- **SQL injection** — 基于报错 + 布尔差分 + 双重确认的基于时间的盲注 *(Phase 5)*
- **反射型输入 / XSS 上下文探测** — 非执行差分 canary,支持 HTML / 属性 / JS / JSON 上下文分类 *(Phase 5)*
- **HTTP 请求走私** — 基于时间的 CL.TE / TE.CL 失步检测 *(Phase 5)*
- **WebSocket 发现** — endpoint 枚举 + 跨域握手 (CSWSH) 检查 *(Phase 5)*
- **原型链污染** — 通过查询字符串和 JSON body 进行 `__proto__` gadget 探测 *(Phase 5)*
此外:针对每个 cookie 的 `HttpOnly` / `SameSite` 精度(现在会检查每个 cookie 自身的属性,并标记没有 `Secure` 的 `SameSite=None`),以及 ASP.NET / IIS 技术 playbook。
侵入性子集(实时 PUT 上传、基于时间的 SQLi、请求走私)仅在启用侵入性检查时运行,因此 `--profile recon` / `--profile stealth` / `--no-intrusive` 始终是安全的。
## 功能
### 被动侦察
- DNS、WHOIS、ASN 查询(域名年龄标记、IPv6 存在检查)
- **DNS 安全态势** — SPF、DMARC(策略执行检查)、DNSSEC、CAA,以及针对每个权威域名服务器进行 AXFR 区传送尝试
- 证书透明度 (crt.sh)
- Wayback Machine URL + 参数挖掘 — 参数将被输入到后续的模糊测试阶段
- Google dork URL 生成(+ 可选的 Custom Search API 自动化)
- 邮箱收集
### 主动侦察
- 子域名枚举 (subfinder),具备范围感知过滤功能
- 子域名接管检测 (subjack + 内置指纹库,覆盖 S3、GitHub Pages、Heroku、Azure、Shopify、Fastly、Surge、Bitbucket)
- 虚拟主机模糊测试 (ffuf)
- 端口扫描 (nmap,默认以 Web 为重点 / 使用 `--full-ports` 扫描全部)
- WAF / CDN 指纹识别 (wafw00f + 基于标头检测 Cloudflare、CloudFront、Akamai、Fastly、Azure CDN、Sucuri)
- Favicon hash(使用 mmh3 进行 Shodan 探测 + SHA-256 回退)
### 技术与内容发现
- 技术检测 (whatweb, webanalyze)
- 针对特定技术的 playbook — **仅**在检测到对应技术栈时启动:
- **WordPress** → wpscan(插件 / 用户枚举)
- **Drupal** → droopescan
- **Joomla** → joomscan
- **Laravel** → `.env`、Telescope、Ignition、debugbar、Horizon 探测
- **Spring Boot** → actuator 扫描(env、heapdump、mappings、trace 等)
- **Tomcat** → manager / host-manager / examples
- **Jenkins** → `/script`、`/manage`、`/asynchPeople/`
- **ASP.NET / IIS** → trace.axd、elmah.axd、web.config、FrontPage 扩展、App_Data/bin/App_Code 探测(具备针对每个 endpoint 的确认字符串)
- **API schema 发现** — OpenAPI / Swagger(JSON 规范 + UI)、WSDL/SOAP;解析出的 endpoint 和参数会被推送到共享的发现状态中,以便 SQLi / XSS / SSRF / 遍历等阶段测试**真实的 API 攻击面**
- **源码 / VCS / 配置文件暴露** — `.git/HEAD` + `.git/config`、`.svn`、`.hg`、`.DS_Store`、`.env`、`.htpasswd`、`phpinfo`、`server-status` / `server-info`、Docker 产物以及备份/编辑器交换文件 —— 每次命中都需要内容签名,以避免全局捕获 200 带来的误报
- robots.txt、sitemap.xml、security.txt、well-known endpoint
- URL 爬取 (katana) — 将 URL + 参数输入到下游阶段
- 内容发现 (ffuf) — 通用 + 管理面板字典
- 隐藏参数发现 (Arjun) — 针对基础 URL + 爬取到的 endpoint 运行
### HTTP 分析
- 安全标头审计 (HSTS、CSP、X-Frame-Options、X-CTO、Referrer-Policy、Permissions-Policy)
- **深度 CSP 分析** — 解析策略并标记 `unsafe-inline`(不带 nonce/hash/strict-dynamic)、`unsafe-eval`、通配符/宽泛协议来源,以及缺失的 `object-src` / `base-uri` / `frame-ancestors`
- Cookie 审计(针对每个 cookie 检查 Secure、HttpOnly、SameSite — 包括不带 `Secure` 的 `SameSite=None`)
- 信息泄露 (Server、X-Powered-By、X-AspNet-Version)
- CORS 错误配置(origin 反射、通配符 + 凭证)
- **Host 头注入**(Host、X-Forwarded-Host、X-Host canary 反射)
- **CRLF 注入**(通用 + 爬虫发现的参数)
- **HTTP 方法与动词篡改** — OPTIONS 枚举、TRACE / XST、实时 PUT 上传测试(自动清理,仅限侵入性模式),以及针对受保护路径的基于动词的认证绕过
- **401 / 403 绕过** — 尾部斜杠/点、双斜杠、`%2e`、`..;/`、编码斜杠、大小写变形,以及 `X-Original-URL` / `X-Rewrite-URL` / 客户端 IP 标头覆盖,通过与拒绝访问页面的内容长度差异进行确认
- OAuth / OIDC endpoint 发现 (`.well-known/*`、JWKS、token endpoint)
- **JWT 深度分析**:
- 接受 `alg:none`
- 弱 HMAC 破解(12 个密钥的字典 — `secret`、`password`、`changeme` 等)
- `kid` 头注入 / 路径遍历提示
- 缺失 / 过期的 `exp` 声明
### 漏洞扫描
- **Nuclei** — CVE / 错误配置模板,具备严重性过滤和侵入性标签控制
- **SQL injection** — 基于报错(数据库错误签名)、基于布尔的差分(TRUE 匹配基线 / FALSE 产生差异),以及双重确认的基于时间的盲注(MySQL `SLEEP`、MSSQL `WAITFOR`、PostgreSQL `pg_sleep`);基于时间的确认仅限侵入模式
- **反射型输入 / XSS 上下文探测** — 注入一个唯一的、**非执行**标记以及原始的 `< > " '`,以查看哪些字符能未编码保留以及处于何种上下文(HTML body / 属性 / `