|
1 | | -# debugHunter - Chrome Extension |
| 1 | +# debugHunter |
2 | 2 |
|
3 | 3 | <p align="center"> |
4 | | -<img src="https://i.imgur.com/BknNTJs.png" width="600" height="150" > |
| 4 | + <img src="images/icon128.png" alt="debugHunter" width="128" height="128"> |
5 | 5 | </p> |
6 | 6 |
|
7 | | -[](https://github.com/devploit/debugHunter/issues/) |
| 7 | +<h3 align="center">Discover Hidden Debug Endpoints & Development Environments</h3> |
8 | 8 |
|
9 | | -Discover hidden debugging parameters and uncover web application secrets with debugHunter. This Chrome extension scans websites for debugging parameters and notifies you when it finds a URL with modified responses. The extension utilizes a binary search algorithm to efficiently determine the parameter responsible for the change in the response. |
| 9 | +<p align="center"> |
| 10 | + <a href="https://github.com/devploit/debugHunter/releases"><img src="https://img.shields.io/github/v/release/devploit/debugHunter?style=flat-square&color=a371f7" alt="Release"></a> |
| 11 | + <a href="https://github.com/devploit/debugHunter/blob/main/LICENSE"><img src="https://img.shields.io/github/license/devploit/debugHunter?style=flat-square&color=a371f7" alt="License"></a> |
| 12 | + <a href="https://github.com/devploit/debugHunter/issues"><img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat-square" alt="Contributions Welcome"></a> |
| 13 | +</p> |
| 14 | + |
| 15 | +<p align="center"> |
| 16 | + <b>The essential Chrome extension for bug bounty hunters and penetration testers</b><br> |
| 17 | + Passively detect debug parameters, sensitive headers, and exposed paths while you browse. |
| 18 | +</p> |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## Why debugHunter? |
| 23 | + |
| 24 | +Finding debug endpoints and exposed configuration files is a common technique in bug bounty hunting. **debugHunter** automates this process by passively scanning every website you visit, alerting you when it discovers: |
| 25 | + |
| 26 | +- 🔧 **Debug Parameters** — `?debug=1`, `?env=dev`, `?XDEBUG_SESSION_START=phpstorm` |
| 27 | +- 📨 **Sensitive Headers** — `X-Forwarded-Host: localhost`, `X-Original-URL: /admin` |
| 28 | +- 📁 **Exposed Paths** — `/.env`, `/.git/config`, `/actuator/env`, `/phpinfo.php` |
| 29 | + |
| 30 | +All findings are classified by severity so you can focus on critical issues first. |
10 | 31 |
|
11 | 32 | ## Features |
12 | 33 |
|
13 | | -- Compare responses with and without query parameters to identify changes. |
14 | | -- Compare responses with and without custom headers to identify changes. |
15 | | -- Check for sensitive paths. |
16 | | -- Avoid dynamic URLs and it's false positives. |
17 | | -- Avoid soft 404 URLs. |
18 | | -- Track and display the number of modified URLs in the browser action badge. |
19 | | -- Allow the user to view and clear the list of found URLs. |
| 34 | +| Feature | Description | |
| 35 | +|---------|-------------| |
| 36 | +| **Multi-Factor Detection** | Combines status codes, content analysis, headers, and debug indicators | |
| 37 | +| **Severity Classification** | Critical, High, Medium, Low — prioritize what matters | |
| 38 | +| **Smart Rate Limiting** | Exponential backoff prevents WAF blocks | |
| 39 | +| **Response Diff Viewer** | Compare original vs modified responses side-by-side | |
| 40 | +| **Search & Filter** | Find specific domains or keywords across all findings | |
| 41 | +| **Configurable Modes** | Smart, Aggressive, Conservative, Keywords-only | |
| 42 | +| **Low False Positives** | Dynamic content filtering removes timestamps, tokens, sessions | |
| 43 | + |
| 44 | +## Detection Coverage |
| 45 | + |
| 46 | +<details> |
| 47 | +<summary><b>Debug Parameters (25+)</b></summary> |
| 48 | + |
| 49 | +``` |
| 50 | +?debug=1 ?_debug=true ?debug_mode=1 |
| 51 | +?XDEBUG_SESSION_START ?XDEBUG_SESSION=1 ?debugbar=1 |
| 52 | +?profiler=1 ?trace=1 ?verbose=1 |
| 53 | +?show_errors=1 ?display_errors=1 ?dev_mode=1 |
| 54 | +?phpinfo=1 ?error_reporting=E_ALL ?env=dev |
| 55 | +?env=staging ?env=pre ?env=sandbox |
| 56 | +?environment=dev ?staging=1 ?beta=1 |
| 57 | +?internal=1 ?test=1 ?admin=1 |
| 58 | +``` |
| 59 | +</details> |
| 60 | + |
| 61 | +<details> |
| 62 | +<summary><b>Sensitive Headers (7)</b></summary> |
| 63 | + |
| 64 | +``` |
| 65 | +X-Debug: 1 |
| 66 | +X-Forwarded-Host: localhost |
| 67 | +X-Forwarded-For: 127.0.0.1 |
| 68 | +X-Original-URL: /admin |
| 69 | +X-Env: dev |
| 70 | +Env: pre |
| 71 | +Env: dev |
| 72 | +``` |
| 73 | +</details> |
| 74 | + |
| 75 | +<details> |
| 76 | +<summary><b>Sensitive Paths (46)</b></summary> |
| 77 | + |
| 78 | +**Critical** |
| 79 | +``` |
| 80 | +/.env /.git/config /config.json |
| 81 | +/.env.local /.env.production /credentials.json |
| 82 | +/auth.json /secrets.json /database.yml |
| 83 | +/wp-config.php.bak /.aws/credentials /backup.sql |
| 84 | +/dump.sql /.htpasswd /actuator/env |
| 85 | +/actuator/heapdump |
| 86 | +``` |
| 87 | + |
| 88 | +**High** |
| 89 | +``` |
| 90 | +/.git/HEAD /.git/logs/HEAD /.svn/entries |
| 91 | +/phpinfo.php /info.php /graphiql |
| 92 | +/__debug__ /debug /server-status |
| 93 | +/elmah.axd /trace.axd /rails/info/properties |
| 94 | +/package.json /composer.json |
| 95 | +``` |
| 96 | + |
| 97 | +**Medium** |
| 98 | +``` |
| 99 | +/swagger-ui.html /swagger.json /api-docs |
| 100 | +/openapi.json /robots.txt /.well-known/security.txt |
| 101 | +/web.config /.htaccess /Dockerfile |
| 102 | +/docker-compose.yml |
| 103 | +``` |
| 104 | +</details> |
20 | 105 |
|
21 | 106 | ## Installation |
22 | 107 |
|
23 | | -### Option 1: Clone the repository |
| 108 | +### Option 1: Clone Repository |
| 109 | + |
| 110 | +```bash |
| 111 | +git clone https://github.com/devploit/debugHunter.git |
| 112 | +``` |
24 | 113 |
|
25 | | -1. Download or clone this repository to your local machine. |
26 | | -2. Open Google Chrome, and go to `chrome://extensions/`. |
27 | | -3. Enable "Developer mode" in the top right corner if it's not already enabled. |
28 | | -4. Click the "Load unpacked" button on the top left corner. |
29 | | -5. Navigate to the directory where you downloaded or cloned the repository, and select the folder. |
30 | | -6. The debugHunter extension should now be installed and ready to use. |
| 114 | +1. Open `chrome://extensions/` |
| 115 | +2. Enable **Developer mode** (top right) |
| 116 | +3. Click **Load unpacked** |
| 117 | +4. Select the `debugHunter` folder |
| 118 | +5. Pin the extension to your toolbar |
31 | 119 |
|
32 | | -### Option 2: Download the release (.zip) |
| 120 | +### Option 2: Download Release |
33 | 121 |
|
34 | | -1. Download the latest release `.zip` file from the "Releases" section of this repository. |
35 | | -2. Extract the contents of the `.zip` file to a folder on your local machine. |
36 | | -3. Open Google Chrome, and go to `chrome://extensions/`. |
37 | | -4. Enable "Developer mode" in the top right corner if it's not already enabled. |
38 | | -5. Click the "Load unpacked" button on the top left corner. |
39 | | -6. Navigate to the directory where you extracted the `.zip` file, and select the folder. |
40 | | -7. The debugHunter extension should now be installed and ready to use. |
| 122 | +1. Download the latest `.zip` from [Releases](https://github.com/devploit/debugHunter/releases) |
| 123 | +2. Extract and load via `chrome://extensions/` → **Load unpacked** |
41 | 124 |
|
42 | 125 | ## Usage |
43 | 126 |
|
44 | | -It is recommended to pin the extension to the toolbar to check if a new modified URL by debug parameter is found. |
45 | | -1. Navigate to any website. |
46 | | -2. Click on the debugHunter extension icon in the Chrome toolbar. |
47 | | -3. If the extension detects any URLs with modified responses due to debugging parameters, they will be listed in the popup. |
48 | | -4. Click on any URL in the list to open it in a new tab. |
49 | | -5. To clear the list, click on the trash can icon in the top right corner of the popup. |
| 127 | +1. **Browse normally** — debugHunter scans passively in the background |
| 128 | +2. **Check the badge** — Number indicates findings count (color = severity) |
| 129 | +3. **Click the icon** — View findings by category: Paths, Headers, Parameters |
| 130 | +4. **Review & verify** — Click any finding to open in new tab |
| 131 | + |
| 132 | +## Configuration |
| 133 | + |
| 134 | +Access settings via the **gear icon** in the popup: |
| 135 | + |
| 136 | +| Setting | Default | Description | |
| 137 | +|---------|---------|-------------| |
| 138 | +| Detection Mode | Smart | Smart / Aggressive / Conservative / Keywords-only | |
| 139 | +| Similarity Threshold | 0.90 | How similar responses must be to ignore | |
| 140 | +| Min Length Diff | 200 | Minimum bytes difference to flag | |
| 141 | +| Check Interval | 8 hours | Re-check interval for same URL | |
| 142 | +| Base Delay | 300ms | Delay between requests (auto-adjusts) | |
| 143 | +| Whitelist | Empty | Domains to skip | |
50 | 144 |
|
51 | | -## Options/Customization |
| 145 | +## Testing |
52 | 146 |
|
53 | | -To modify the similarity threshold using the options page of the extension, follow these steps: |
54 | | -1. Click on the debugHunter extension icon in the Chrome toolbar. |
55 | | -2. Click on the gear icon in the top right corner of the popup to open the options page. |
56 | | -3. In the options page, use the slider to set the similarity threshold to the desired value (default 0.95). |
| 147 | +A test environment is included to verify the extension works correctly: |
| 148 | + |
| 149 | +```bash |
| 150 | +cd test/ |
| 151 | +./start-server-macos.command # macOS (opens browser automatically) |
| 152 | +./start-server.sh # Linux/other |
| 153 | +``` |
| 154 | + |
| 155 | +This starts a local server on port 9000 with fake sensitive files and debug endpoints. |
| 156 | + |
| 157 | +## Technical Details |
| 158 | + |
| 159 | +- **Manifest V3** — Chrome MV3 compliant |
| 160 | +- **Permissions** — `storage`, `tabs`, `<all_urls>` |
| 161 | +- **Background** — Service Worker (event-driven) |
| 162 | +- **Privacy** — All analysis happens locally, no external requests |
| 163 | + |
| 164 | +## Changelog |
| 165 | + |
| 166 | +### v2.0.0 |
| 167 | +- Complete rewrite with Manifest V3 |
| 168 | +- Multi-factor detection engine |
| 169 | +- Severity classification system |
| 170 | +- Response diff viewer |
| 171 | +- Search and filter functionality |
| 172 | +- Smart rate limiting with exponential backoff |
| 173 | +- Dynamic content filtering |
| 174 | +- 4 configurable detection modes |
| 175 | +- New dark UI |
| 176 | +- 46 sensitive paths (up from 17) |
| 177 | +- Optimized requests with HEAD checks and caching |
| 178 | + |
| 179 | +### v1.x |
| 180 | +- Initial release with basic parameter detection |
57 | 181 |
|
58 | 182 | ## Contributing |
59 | 183 |
|
60 | | -We welcome contributions! Please feel free to submit pull requests or open issues to improve debugHunter. |
| 184 | +- **Report bugs** — Open an issue with reproduction steps |
| 185 | +- **Add patterns** — Submit PRs with new parameters, headers, or paths |
| 186 | +- **Improve docs** — Help make the README clearer |
61 | 187 |
|
62 | 188 | ## License |
63 | 189 |
|
64 | | -This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. |
| 190 | +MIT License. See [LICENSE](LICENSE) for details. |
| 191 | + |
| 192 | +## Disclaimer |
| 193 | + |
| 194 | +This tool is for authorized security testing only. Always obtain proper authorization before testing web applications you do not own. |
| 195 | + |
| 196 | +--- |
| 197 | + |
| 198 | +<p align="center"> |
| 199 | + <b>debugHunter</b> — Exposing what should stay hidden<br> |
| 200 | + <sub>Made with ♥ for the bug bounty community</sub> |
| 201 | +</p> |
0 commit comments