evilspider 2.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. evilspider-2.5.0/MANIFEST.in +11 -0
  2. evilspider-2.5.0/PKG-INFO +273 -0
  3. evilspider-2.5.0/README.md +238 -0
  4. evilspider-2.5.0/_version.py +5 -0
  5. evilspider-2.5.0/analyzer/__init__.py +8 -0
  6. evilspider-2.5.0/analyzer/api_parser.py +188 -0
  7. evilspider-2.5.0/analyzer/secrets.py +363 -0
  8. evilspider-2.5.0/analyzer/security.py +186 -0
  9. evilspider-2.5.0/analyzer/tech.py +216 -0
  10. evilspider-2.5.0/config.py +373 -0
  11. evilspider-2.5.0/crawler.py +640 -0
  12. evilspider-2.5.0/evilspider.egg-info/PKG-INFO +273 -0
  13. evilspider-2.5.0/evilspider.egg-info/SOURCES.txt +42 -0
  14. evilspider-2.5.0/evilspider.egg-info/dependency_links.txt +1 -0
  15. evilspider-2.5.0/evilspider.egg-info/entry_points.txt +2 -0
  16. evilspider-2.5.0/evilspider.egg-info/requires.txt +10 -0
  17. evilspider-2.5.0/evilspider.egg-info/top_level.txt +8 -0
  18. evilspider-2.5.0/extractors/__init__.py +8 -0
  19. evilspider-2.5.0/extractors/form_extractor.py +164 -0
  20. evilspider-2.5.0/extractors/html_extractor.py +147 -0
  21. evilspider-2.5.0/extractors/js_extractor.py +129 -0
  22. evilspider-2.5.0/extractors/sourcemap.py +53 -0
  23. evilspider-2.5.0/main.py +392 -0
  24. evilspider-2.5.0/output/__init__.py +6 -0
  25. evilspider-2.5.0/output/formatter.py +182 -0
  26. evilspider-2.5.0/output/reporter.py +226 -0
  27. evilspider-2.5.0/output/templates/report_template.html +327 -0
  28. evilspider-2.5.0/prober/__init__.py +6 -0
  29. evilspider-2.5.0/prober/probe.py +183 -0
  30. evilspider-2.5.0/prober/wordlists.py +161 -0
  31. evilspider-2.5.0/pyproject.toml +89 -0
  32. evilspider-2.5.0/requirements.txt +3 -0
  33. evilspider-2.5.0/setup.cfg +4 -0
  34. evilspider-2.5.0/setup.py +18 -0
  35. evilspider-2.5.0/tests/test_api_parser.py +63 -0
  36. evilspider-2.5.0/tests/test_config.py +44 -0
  37. evilspider-2.5.0/tests/test_crawler.py +120 -0
  38. evilspider-2.5.0/tests/test_extractors.py +98 -0
  39. evilspider-2.5.0/tests/test_normalization.py +39 -0
  40. evilspider-2.5.0/tests/test_prober.py +26 -0
  41. evilspider-2.5.0/tests/test_reporter.py +76 -0
  42. evilspider-2.5.0/tests/test_secrets.py +60 -0
  43. evilspider-2.5.0/tests/test_security.py +36 -0
  44. evilspider-2.5.0/tests/test_tech.py +32 -0
@@ -0,0 +1,11 @@
1
+ include README.md
2
+ include _version.py
3
+ include config.py
4
+ include crawler.py
5
+ include main.py
6
+ include requirements.txt
7
+ recursive-include output/templates *.html
8
+ recursive-include analyzer *.py
9
+ recursive-include extractors *.py
10
+ recursive-include prober *.py
11
+ recursive-include output *.py
@@ -0,0 +1,273 @@
1
+ Metadata-Version: 2.4
2
+ Name: evilspider
3
+ Version: 2.5.0
4
+ Summary: Fast Async Attack Surface Recon Crawler & Hunter
5
+ Author: Baba01hacker666
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/Baba01hacker666/evilspider
8
+ Project-URL: Repository, https://github.com/Baba01hacker666/evilspider
9
+ Project-URL: Bug Tracker, https://github.com/Baba01hacker666/evilspider/issues
10
+ Keywords: web-crawler,reconnaissance,bug-bounty,security-tools,attack-surface,secret-scanner,api-discovery
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Information Technology
13
+ Classifier: Intended Audience :: System Administrators
14
+ Classifier: Topic :: Security
15
+ Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Requires-Python: >=3.8
25
+ Description-Content-Type: text/markdown
26
+ Requires-Dist: aiohttp>=3.9.0
27
+ Requires-Dist: jinja2>=3.0.0
28
+ Requires-Dist: pyyaml>=6.0
29
+ Provides-Extra: dev
30
+ Requires-Dist: pytest>=7.0; extra == "dev"
31
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
32
+ Requires-Dist: bandit>=1.7.0; extra == "dev"
33
+ Requires-Dist: build>=1.0.0; extra == "dev"
34
+ Requires-Dist: twine>=4.0.0; extra == "dev"
35
+
36
+ # 🕷️ EvilSpider
37
+
38
+ [![CI](https://github.com/Baba01hacker666/evilspider/actions/workflows/ci.yml/badge.svg)](https://github.com/Baba01hacker666/evilspider/actions/workflows/ci.yml)
39
+ [![PyPI version](https://img.shields.io/pypi/v/evilspider.svg)](https://pypi.org/project/evilspider/)
40
+ [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
41
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
42
+ [![AsyncIO](https://img.shields.io/badge/AsyncIO-High%20Performance-green.svg)](https://docs.python.org/3/library/asyncio.html)
43
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
44
+
45
+ **EvilSpider** is a fast, asynchronous attack-surface crawler and reconnaissance engine designed for bug bounty hunters, penetration testers, and security researchers.
46
+
47
+ Unlike traditional generic crawlers (e.g., Scrapy or Crawlee), EvilSpider focuses strictly on **offensive security use cases**: uncovering hidden endpoints, hunting leaked secrets and API keys, extracting parameterized URLs, fingerprinting technologies, mapping forms, and generating actionable reconnaissance dashboards.
48
+
49
+ ---
50
+
51
+ ## 📥 Installation
52
+
53
+ ### 📦 Via `pip`
54
+ ```bash
55
+ pip install evilspider
56
+ ```
57
+
58
+ ### ⚡ Via `pipx` (Recommended for isolated CLI)
59
+ ```bash
60
+ pipx install evilspider
61
+ ```
62
+
63
+ ### 🛠️ From Source (Development)
64
+ ```bash
65
+ git clone https://github.com/Baba01hacker666/evilspider.git
66
+ cd evilspider
67
+ pip install -e .
68
+ ```
69
+
70
+ ---
71
+
72
+ ## 🚀 Quick Start
73
+
74
+ ### 1. Standard Recon Crawl
75
+ ```bash
76
+ evilspider crawl -u https://example.com
77
+ ```
78
+
79
+ ### 2. Multi-Target Crawl from File
80
+ ```bash
81
+ evilspider crawl -l targets.txt -t 20 -o results.json
82
+ ```
83
+
84
+ ### 3. Pipeline URLs to Nuclei / FFUF / HTTPX
85
+ ```bash
86
+ evilspider crawl -u https://example.com --urls-only | nuclei -t http/cves/
87
+ ```
88
+
89
+ ### 4. Generate Interactive Dark-Mode HTML Dashboard
90
+ ```bash
91
+ evilspider crawl -u https://example.com --report-html report.html --report-md report.md
92
+ ```
93
+
94
+ ---
95
+
96
+ ## ⚡ Key Features
97
+
98
+ - **🚀 Async Concurrency Engine**: Ultra-fast asynchronous crawler built on `asyncio` and `aiohttp` with connection pooling, rate limiting, and configurable worker threads.
99
+ - **🚨 Secret & Sensitive Data Hunter**: Built-in regex rule engine scanning for 30+ types of credentials across responses (AWS keys, Google Cloud API keys, JWT tokens, Stripe keys, GitHub PATs, Slack webhooks, Private keys, Database URIs, and leaked authorization headers).
100
+ - **📝 HTML Form & Input Extractor**: Detects and categorizes HTML forms (Login, Registration, File Uploads, Password Reset, Search) along with hidden CSRF tokens and field names.
101
+ - **📜 Deep JavaScript Analysis**: Extracts REST API routes, dynamic endpoints, AJAX (`fetch`/`axios`/`$.ajax`) targets, Webpack chunks, and Source Map (`.js.map`) references from inline scripts and external JS files.
102
+ - **🛠️ Tech Stack Fingerprinter**: Detects CMS (WordPress, Drupal, Joomla, Shopify), Backend Frameworks (Django, Laravel, Spring Boot, Express, Rails, FastAPI), Web Servers (Nginx, Apache, Caddy, Cloudflare, IIS), and Frontend Frameworks (React, Vue, Next.js, Nuxt, Angular).
103
+ - **🛡️ Security Headers & Reflection Auditor**: Identifies missing security headers (CSP, HSTS, X-Frame-Options, X-Content-Type-Options), dangerous CORS misconfigurations (`*` with credentials), and reflected URL parameters (potential XSS sinks).
104
+ - **📖 API Documentation & Schema Parsing**: Automatically parses Swagger 2.0 / OpenAPI 3.x specifications and GraphQL schemas to extract all declared endpoints, parameters, and routes.
105
+ - **🎯 Active Sensitive File Prober (`probe`)**: Fast active probing module hunting for VCS leaks (`.git/HEAD`, `.svn`), exposed configs (`.env`, `web.config`), backup archives (`dump.sql`, `backup.zip`), and debug endpoints (`actuator/health`, `pprof`) with smart soft-404 detection.
106
+ - **🌐 Scope & Filter Controls**: Scope by domain, subdomains, regex whitelist/blacklist, extension filters, path exclusions, status codes, and loop prevention algorithms.
107
+ - **🎭 Browser Impersonation Profiles**: Modern User-Agent and Client Hints / header profiles for Chrome, Firefox, Edge, Safari, Chrome Android, and Safari iOS.
108
+ - **📊 Multi-Format Reporting**: Export findings to JSON, JSON Lines (NDJSON), CSV, Plain text URLs, Parameter wordlists, Markdown reports, and a standalone responsive **Interactive Dark-Mode HTML Dashboard**.
109
+ - **🔌 UNIX Pipeline Ready**: `--urls-only` and `--silent` modes designed for piping directly into tools like `nuclei`, `ffuf`, `httpx`, `sqlmap`, or `dalfox`.
110
+
111
+ ---
112
+
113
+ ## 🔥 Recon Workflows
114
+
115
+ ### 🕵️ 1) Full Hunter Mode (Secrets + Uploads + Sensitive Probing)
116
+ ```bash
117
+ evilspider crawl \
118
+ -u https://target.tld \
119
+ --robots --sitemaps \
120
+ --detect-uploads \
121
+ --probe-sensitive \
122
+ -d 4 -t 15 \
123
+ --report-html report.html
124
+ ```
125
+
126
+ ### 🔑 2) Sensitive Endpoint & Backup Prober (`probe`)
127
+ ```bash
128
+ evilspider probe \
129
+ -u https://target.tld \
130
+ --categories vcs,env_config,backups,api_docs,actuators_debug \
131
+ -o probe_findings.json
132
+ ```
133
+
134
+ ### 📁 3) Offline JavaScript & File Analysis (`extract`)
135
+ ```bash
136
+ evilspider extract -f app.bundle.js -o extracted_assets.json
137
+ ```
138
+
139
+ ### 🔐 4) Authenticated Crawl with Session Cookies & Bearer Token
140
+ ```bash
141
+ evilspider crawl \
142
+ -u https://target.tld \
143
+ -C 'session=abc12345; role=admin' \
144
+ --bearer-token 'eyJhbGciOiJIUzI1Ni...' \
145
+ -H 'X-Forwarded-For: 127.0.0.1'
146
+ ```
147
+
148
+ ### 🌐 5) Proxied Crawl through Burp Suite / OWASP ZAP
149
+ ```bash
150
+ evilspider crawl \
151
+ -u https://target.tld \
152
+ -x http://127.0.0.1:8080 \
153
+ --insecure \
154
+ --report-redirects
155
+ ```
156
+
157
+ ### 🎯 6) Parameter Wordlist Harvesting for Fuzzing
158
+ ```bash
159
+ evilspider crawl \
160
+ -u https://target.tld \
161
+ --params-file params_wordlist.txt \
162
+ --urls-only > discovered_urls.txt
163
+
164
+ # Pipe discovered parameters into ffuf
165
+ ffuf -u "https://target.tld/endpoint?FUZZ=1" -w params_wordlist.txt
166
+ ```
167
+
168
+ ---
169
+
170
+ ## 🛠️ CLI Options Reference
171
+
172
+ ### `evilspider crawl` (Main Crawler)
173
+
174
+ | Flag | Description |
175
+ |---|---|
176
+ | `-u, --url` | Target URL to crawl (e.g. `https://example.com`) |
177
+ | `-l, --list` | File containing target URLs (or `-` for stdin) |
178
+ | `-c, --config` | Path to JSON configuration file |
179
+ | `-t, --threads` | Number of concurrent workers (default: `10`) |
180
+ | `-d, --max-depth` | Maximum crawl depth (default: `3`) |
181
+ | `-m, --max-links` | Maximum total links to visit (default: `5000`) |
182
+ | `--max-time` | Maximum crawl duration in seconds |
183
+ | `--rate-limit` | Maximum requests per second |
184
+ | `--delay` | Delay between requests in seconds |
185
+ | `-s, --status` | Interesting status codes (default: `200`) |
186
+ | `--exclude-status` | Status codes to ignore (e.g. `404,500`) |
187
+ | `-e, --exts` | Extension focus list (e.g. `php,bak,env,json`) |
188
+ | `-k, --keywords` | Keyword filter for response bodies |
189
+ | `-p, --params-only` | Only report URLs with query parameters |
190
+ | `--include-subdomains` / `--no-include-subdomains` | Toggle subdomain in-scope crawling (default: `true`) |
191
+ | `--scope-regex` | Whitelist regex pattern for allowed URLs |
192
+ | `--exclude-regex` | Blacklist regex pattern for ignored URLs |
193
+ | `--exclude-paths` | Comma-separated paths to ignore (`/logout,/signout`) |
194
+ | `--robots` / `--sitemaps` | Parse `robots.txt` and `sitemap.xml` |
195
+ | `--detect-uploads` | Detect forms with file uploads |
196
+ | `--probe-sensitive` | Actively probe target for sensitive files (.git, .env, backups, etc.) |
197
+ | `--probe-categories` | Prober categories (`vcs,env_config,backups,api_docs,actuators_debug,graphql,admin_auth`) |
198
+ | `--no-secrets` | Disable secrets and API keys scanner |
199
+ | `--no-forms` | Disable HTML forms extractor |
200
+ | `--no-tech` | Disable technology stack fingerprinter |
201
+ | `--no-security-audit`| Disable security headers auditor |
202
+ | `-A, --user-agent` | Custom User-Agent string |
203
+ | `-i, --impersonate` | Browser profile (`chrome`, `firefox`, `edge`, `safari`, `chrome-android`, `safari-ios`) |
204
+ | `-C, --cookies` | Cookie string or path to cookie file |
205
+ | `-H, --headers` | Custom header (repeatable, e.g. `-H 'X-Header: value'`) |
206
+ | `-x, --proxy` | Proxy URL (HTTP/SOCKS5 e.g. `http://127.0.0.1:8080`) |
207
+ | `--bearer-token` | Authorization Bearer token |
208
+ | `--auth-basic` | HTTP Basic Auth in format `user:pass` |
209
+ | `-T, --timeout` | Request timeout in seconds (default: `5`) |
210
+ | `--retries` | Number of request retries on failure (default: `2`) |
211
+ | `--follow-redirects` | Follow HTTP redirects (default: `true`) |
212
+ | `--report-redirects`| Include redirect chains in results |
213
+ | `--insecure` | Disable SSL certificate verification |
214
+ | `-o, --output` | Primary output JSON file path |
215
+ | `-j, --json` | Stream findings as JSON Lines to stdout |
216
+ | `--csv` | Export findings as CSV |
217
+ | `--report-html` | Generate interactive standalone HTML dashboard |
218
+ | `--report-md` | Generate Markdown summary report |
219
+ | `--urls-only` | Clean stdout output containing only discovered URLs |
220
+ | `--params-file` | Save discovered query parameter wordlist |
221
+ | `--secrets-file` | Save discovered secrets to separate JSON |
222
+ | `--forms-file` | Save extracted forms to separate JSON |
223
+ | `-q, --quiet` | Suppress banner and info logs |
224
+ | `--silent` | Completely silent mode for UNIX piping |
225
+ | `-v, --verbose` | Enable debug logging |
226
+ | `--no-color` | Disable ANSI terminal colors |
227
+
228
+ ---
229
+
230
+ ## 📊 Interactive HTML Dashboard
231
+
232
+ EvilSpider generates a standalone, self-contained HTML report with:
233
+ - Summary metric cards (Endpoints, Secrets, Forms, Subdomains, Technologies, Security Issues)
234
+ - Dynamic table filtering and instant keyword search
235
+ - Dedicated tabs for Secrets, Forms, Technologies, Security Headers, API Docs, and Subdomains
236
+ - Zero external CDN dependencies (works completely offline)
237
+
238
+ ---
239
+
240
+ ## 🏗️ Architecture
241
+
242
+ ```
243
+ evilspider/
244
+ ├── analyzer/
245
+ │ ├── secrets.py # 30+ regex rules for API keys, tokens & credentials
246
+ │ ├── tech.py # Web server, framework & CMS fingerprinter
247
+ │ ├── security.py # Security headers, CORS & reflected param auditor
248
+ │ └── api_parser.py # Swagger 2.0 / OpenAPI 3.x & GraphQL parser
249
+ ├── extractors/
250
+ │ ├── html_extractor.py # Fast HTML parser for links, scripts, frames & comments
251
+ │ ├── js_extractor.py # JavaScript REST endpoint & webpack chunk extractor
252
+ │ ├── form_extractor.py # HTML form, input & CSRF token parser
253
+ │ └── sourcemap.py # Source map (.js.map) unminified route extractor
254
+ ├── prober/
255
+ │ ├── probe.py # Active sensitive file prober with soft-404 detection
256
+ │ └── wordlists.py # Curated recon path lists (VCS, configs, backups, APIs)
257
+ ├── output/
258
+ │ ├── formatter.py # ANSI terminal formatting, logo & summary tables
259
+ │ ├── reporter.py # Multi-format reporter (JSON, CSV, MD, HTML, TXT)
260
+ │ └── templates/
261
+ │ └── report_template.html # Responsive dark-mode dashboard
262
+ ├── tests/ # Comprehensive unit and integration test suite
263
+ ├── _version.py # Single source of truth for version and author metadata
264
+ ├── config.py # Config parser and CLI argument validator
265
+ ├── crawler.py # Async crawl orchestrator and queue worker pool
266
+ └── main.py # CLI entrypoint (crawl, probe, extract, report)
267
+ ```
268
+
269
+ ---
270
+
271
+ ## ⚖️ Legal Disclaimer
272
+
273
+ EvilSpider is developed for authorized security assessments, penetration testing, bug bounty reconnaissance, and educational purposes only. Do not use this tool against targets without explicit authorization. The authors assume no liability for misuse.
@@ -0,0 +1,238 @@
1
+ # 🕷️ EvilSpider
2
+
3
+ [![CI](https://github.com/Baba01hacker666/evilspider/actions/workflows/ci.yml/badge.svg)](https://github.com/Baba01hacker666/evilspider/actions/workflows/ci.yml)
4
+ [![PyPI version](https://img.shields.io/pypi/v/evilspider.svg)](https://pypi.org/project/evilspider/)
5
+ [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+ [![AsyncIO](https://img.shields.io/badge/AsyncIO-High%20Performance-green.svg)](https://docs.python.org/3/library/asyncio.html)
8
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
9
+
10
+ **EvilSpider** is a fast, asynchronous attack-surface crawler and reconnaissance engine designed for bug bounty hunters, penetration testers, and security researchers.
11
+
12
+ Unlike traditional generic crawlers (e.g., Scrapy or Crawlee), EvilSpider focuses strictly on **offensive security use cases**: uncovering hidden endpoints, hunting leaked secrets and API keys, extracting parameterized URLs, fingerprinting technologies, mapping forms, and generating actionable reconnaissance dashboards.
13
+
14
+ ---
15
+
16
+ ## 📥 Installation
17
+
18
+ ### 📦 Via `pip`
19
+ ```bash
20
+ pip install evilspider
21
+ ```
22
+
23
+ ### ⚡ Via `pipx` (Recommended for isolated CLI)
24
+ ```bash
25
+ pipx install evilspider
26
+ ```
27
+
28
+ ### 🛠️ From Source (Development)
29
+ ```bash
30
+ git clone https://github.com/Baba01hacker666/evilspider.git
31
+ cd evilspider
32
+ pip install -e .
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 🚀 Quick Start
38
+
39
+ ### 1. Standard Recon Crawl
40
+ ```bash
41
+ evilspider crawl -u https://example.com
42
+ ```
43
+
44
+ ### 2. Multi-Target Crawl from File
45
+ ```bash
46
+ evilspider crawl -l targets.txt -t 20 -o results.json
47
+ ```
48
+
49
+ ### 3. Pipeline URLs to Nuclei / FFUF / HTTPX
50
+ ```bash
51
+ evilspider crawl -u https://example.com --urls-only | nuclei -t http/cves/
52
+ ```
53
+
54
+ ### 4. Generate Interactive Dark-Mode HTML Dashboard
55
+ ```bash
56
+ evilspider crawl -u https://example.com --report-html report.html --report-md report.md
57
+ ```
58
+
59
+ ---
60
+
61
+ ## ⚡ Key Features
62
+
63
+ - **🚀 Async Concurrency Engine**: Ultra-fast asynchronous crawler built on `asyncio` and `aiohttp` with connection pooling, rate limiting, and configurable worker threads.
64
+ - **🚨 Secret & Sensitive Data Hunter**: Built-in regex rule engine scanning for 30+ types of credentials across responses (AWS keys, Google Cloud API keys, JWT tokens, Stripe keys, GitHub PATs, Slack webhooks, Private keys, Database URIs, and leaked authorization headers).
65
+ - **📝 HTML Form & Input Extractor**: Detects and categorizes HTML forms (Login, Registration, File Uploads, Password Reset, Search) along with hidden CSRF tokens and field names.
66
+ - **📜 Deep JavaScript Analysis**: Extracts REST API routes, dynamic endpoints, AJAX (`fetch`/`axios`/`$.ajax`) targets, Webpack chunks, and Source Map (`.js.map`) references from inline scripts and external JS files.
67
+ - **🛠️ Tech Stack Fingerprinter**: Detects CMS (WordPress, Drupal, Joomla, Shopify), Backend Frameworks (Django, Laravel, Spring Boot, Express, Rails, FastAPI), Web Servers (Nginx, Apache, Caddy, Cloudflare, IIS), and Frontend Frameworks (React, Vue, Next.js, Nuxt, Angular).
68
+ - **🛡️ Security Headers & Reflection Auditor**: Identifies missing security headers (CSP, HSTS, X-Frame-Options, X-Content-Type-Options), dangerous CORS misconfigurations (`*` with credentials), and reflected URL parameters (potential XSS sinks).
69
+ - **📖 API Documentation & Schema Parsing**: Automatically parses Swagger 2.0 / OpenAPI 3.x specifications and GraphQL schemas to extract all declared endpoints, parameters, and routes.
70
+ - **🎯 Active Sensitive File Prober (`probe`)**: Fast active probing module hunting for VCS leaks (`.git/HEAD`, `.svn`), exposed configs (`.env`, `web.config`), backup archives (`dump.sql`, `backup.zip`), and debug endpoints (`actuator/health`, `pprof`) with smart soft-404 detection.
71
+ - **🌐 Scope & Filter Controls**: Scope by domain, subdomains, regex whitelist/blacklist, extension filters, path exclusions, status codes, and loop prevention algorithms.
72
+ - **🎭 Browser Impersonation Profiles**: Modern User-Agent and Client Hints / header profiles for Chrome, Firefox, Edge, Safari, Chrome Android, and Safari iOS.
73
+ - **📊 Multi-Format Reporting**: Export findings to JSON, JSON Lines (NDJSON), CSV, Plain text URLs, Parameter wordlists, Markdown reports, and a standalone responsive **Interactive Dark-Mode HTML Dashboard**.
74
+ - **🔌 UNIX Pipeline Ready**: `--urls-only` and `--silent` modes designed for piping directly into tools like `nuclei`, `ffuf`, `httpx`, `sqlmap`, or `dalfox`.
75
+
76
+ ---
77
+
78
+ ## 🔥 Recon Workflows
79
+
80
+ ### 🕵️ 1) Full Hunter Mode (Secrets + Uploads + Sensitive Probing)
81
+ ```bash
82
+ evilspider crawl \
83
+ -u https://target.tld \
84
+ --robots --sitemaps \
85
+ --detect-uploads \
86
+ --probe-sensitive \
87
+ -d 4 -t 15 \
88
+ --report-html report.html
89
+ ```
90
+
91
+ ### 🔑 2) Sensitive Endpoint & Backup Prober (`probe`)
92
+ ```bash
93
+ evilspider probe \
94
+ -u https://target.tld \
95
+ --categories vcs,env_config,backups,api_docs,actuators_debug \
96
+ -o probe_findings.json
97
+ ```
98
+
99
+ ### 📁 3) Offline JavaScript & File Analysis (`extract`)
100
+ ```bash
101
+ evilspider extract -f app.bundle.js -o extracted_assets.json
102
+ ```
103
+
104
+ ### 🔐 4) Authenticated Crawl with Session Cookies & Bearer Token
105
+ ```bash
106
+ evilspider crawl \
107
+ -u https://target.tld \
108
+ -C 'session=abc12345; role=admin' \
109
+ --bearer-token 'eyJhbGciOiJIUzI1Ni...' \
110
+ -H 'X-Forwarded-For: 127.0.0.1'
111
+ ```
112
+
113
+ ### 🌐 5) Proxied Crawl through Burp Suite / OWASP ZAP
114
+ ```bash
115
+ evilspider crawl \
116
+ -u https://target.tld \
117
+ -x http://127.0.0.1:8080 \
118
+ --insecure \
119
+ --report-redirects
120
+ ```
121
+
122
+ ### 🎯 6) Parameter Wordlist Harvesting for Fuzzing
123
+ ```bash
124
+ evilspider crawl \
125
+ -u https://target.tld \
126
+ --params-file params_wordlist.txt \
127
+ --urls-only > discovered_urls.txt
128
+
129
+ # Pipe discovered parameters into ffuf
130
+ ffuf -u "https://target.tld/endpoint?FUZZ=1" -w params_wordlist.txt
131
+ ```
132
+
133
+ ---
134
+
135
+ ## 🛠️ CLI Options Reference
136
+
137
+ ### `evilspider crawl` (Main Crawler)
138
+
139
+ | Flag | Description |
140
+ |---|---|
141
+ | `-u, --url` | Target URL to crawl (e.g. `https://example.com`) |
142
+ | `-l, --list` | File containing target URLs (or `-` for stdin) |
143
+ | `-c, --config` | Path to JSON configuration file |
144
+ | `-t, --threads` | Number of concurrent workers (default: `10`) |
145
+ | `-d, --max-depth` | Maximum crawl depth (default: `3`) |
146
+ | `-m, --max-links` | Maximum total links to visit (default: `5000`) |
147
+ | `--max-time` | Maximum crawl duration in seconds |
148
+ | `--rate-limit` | Maximum requests per second |
149
+ | `--delay` | Delay between requests in seconds |
150
+ | `-s, --status` | Interesting status codes (default: `200`) |
151
+ | `--exclude-status` | Status codes to ignore (e.g. `404,500`) |
152
+ | `-e, --exts` | Extension focus list (e.g. `php,bak,env,json`) |
153
+ | `-k, --keywords` | Keyword filter for response bodies |
154
+ | `-p, --params-only` | Only report URLs with query parameters |
155
+ | `--include-subdomains` / `--no-include-subdomains` | Toggle subdomain in-scope crawling (default: `true`) |
156
+ | `--scope-regex` | Whitelist regex pattern for allowed URLs |
157
+ | `--exclude-regex` | Blacklist regex pattern for ignored URLs |
158
+ | `--exclude-paths` | Comma-separated paths to ignore (`/logout,/signout`) |
159
+ | `--robots` / `--sitemaps` | Parse `robots.txt` and `sitemap.xml` |
160
+ | `--detect-uploads` | Detect forms with file uploads |
161
+ | `--probe-sensitive` | Actively probe target for sensitive files (.git, .env, backups, etc.) |
162
+ | `--probe-categories` | Prober categories (`vcs,env_config,backups,api_docs,actuators_debug,graphql,admin_auth`) |
163
+ | `--no-secrets` | Disable secrets and API keys scanner |
164
+ | `--no-forms` | Disable HTML forms extractor |
165
+ | `--no-tech` | Disable technology stack fingerprinter |
166
+ | `--no-security-audit`| Disable security headers auditor |
167
+ | `-A, --user-agent` | Custom User-Agent string |
168
+ | `-i, --impersonate` | Browser profile (`chrome`, `firefox`, `edge`, `safari`, `chrome-android`, `safari-ios`) |
169
+ | `-C, --cookies` | Cookie string or path to cookie file |
170
+ | `-H, --headers` | Custom header (repeatable, e.g. `-H 'X-Header: value'`) |
171
+ | `-x, --proxy` | Proxy URL (HTTP/SOCKS5 e.g. `http://127.0.0.1:8080`) |
172
+ | `--bearer-token` | Authorization Bearer token |
173
+ | `--auth-basic` | HTTP Basic Auth in format `user:pass` |
174
+ | `-T, --timeout` | Request timeout in seconds (default: `5`) |
175
+ | `--retries` | Number of request retries on failure (default: `2`) |
176
+ | `--follow-redirects` | Follow HTTP redirects (default: `true`) |
177
+ | `--report-redirects`| Include redirect chains in results |
178
+ | `--insecure` | Disable SSL certificate verification |
179
+ | `-o, --output` | Primary output JSON file path |
180
+ | `-j, --json` | Stream findings as JSON Lines to stdout |
181
+ | `--csv` | Export findings as CSV |
182
+ | `--report-html` | Generate interactive standalone HTML dashboard |
183
+ | `--report-md` | Generate Markdown summary report |
184
+ | `--urls-only` | Clean stdout output containing only discovered URLs |
185
+ | `--params-file` | Save discovered query parameter wordlist |
186
+ | `--secrets-file` | Save discovered secrets to separate JSON |
187
+ | `--forms-file` | Save extracted forms to separate JSON |
188
+ | `-q, --quiet` | Suppress banner and info logs |
189
+ | `--silent` | Completely silent mode for UNIX piping |
190
+ | `-v, --verbose` | Enable debug logging |
191
+ | `--no-color` | Disable ANSI terminal colors |
192
+
193
+ ---
194
+
195
+ ## 📊 Interactive HTML Dashboard
196
+
197
+ EvilSpider generates a standalone, self-contained HTML report with:
198
+ - Summary metric cards (Endpoints, Secrets, Forms, Subdomains, Technologies, Security Issues)
199
+ - Dynamic table filtering and instant keyword search
200
+ - Dedicated tabs for Secrets, Forms, Technologies, Security Headers, API Docs, and Subdomains
201
+ - Zero external CDN dependencies (works completely offline)
202
+
203
+ ---
204
+
205
+ ## 🏗️ Architecture
206
+
207
+ ```
208
+ evilspider/
209
+ ├── analyzer/
210
+ │ ├── secrets.py # 30+ regex rules for API keys, tokens & credentials
211
+ │ ├── tech.py # Web server, framework & CMS fingerprinter
212
+ │ ├── security.py # Security headers, CORS & reflected param auditor
213
+ │ └── api_parser.py # Swagger 2.0 / OpenAPI 3.x & GraphQL parser
214
+ ├── extractors/
215
+ │ ├── html_extractor.py # Fast HTML parser for links, scripts, frames & comments
216
+ │ ├── js_extractor.py # JavaScript REST endpoint & webpack chunk extractor
217
+ │ ├── form_extractor.py # HTML form, input & CSRF token parser
218
+ │ └── sourcemap.py # Source map (.js.map) unminified route extractor
219
+ ├── prober/
220
+ │ ├── probe.py # Active sensitive file prober with soft-404 detection
221
+ │ └── wordlists.py # Curated recon path lists (VCS, configs, backups, APIs)
222
+ ├── output/
223
+ │ ├── formatter.py # ANSI terminal formatting, logo & summary tables
224
+ │ ├── reporter.py # Multi-format reporter (JSON, CSV, MD, HTML, TXT)
225
+ │ └── templates/
226
+ │ └── report_template.html # Responsive dark-mode dashboard
227
+ ├── tests/ # Comprehensive unit and integration test suite
228
+ ├── _version.py # Single source of truth for version and author metadata
229
+ ├── config.py # Config parser and CLI argument validator
230
+ ├── crawler.py # Async crawl orchestrator and queue worker pool
231
+ └── main.py # CLI entrypoint (crawl, probe, extract, report)
232
+ ```
233
+
234
+ ---
235
+
236
+ ## ⚖️ Legal Disclaimer
237
+
238
+ EvilSpider is developed for authorized security assessments, penetration testing, bug bounty reconnaissance, and educational purposes only. Do not use this tool against targets without explicit authorization. The authors assume no liability for misuse.
@@ -0,0 +1,5 @@
1
+ """Single source of truth for EvilSpider metadata."""
2
+
3
+ __version__ = "2.5.0"
4
+ __author__ = "Baba01hacker666"
5
+ __license__ = "MIT"
@@ -0,0 +1,8 @@
1
+ """Analyzer module for EvilSpider: Secrets, Tech Fingerprinting, Security Auditing, API parsing."""
2
+
3
+ from .api_parser import ApiParser
4
+ from .secrets import SecretHunter
5
+ from .security import SecurityAuditor
6
+ from .tech import TechDetector
7
+
8
+ __all__ = ["SecretHunter", "TechDetector", "SecurityAuditor", "ApiParser"]