Skip to content

Commit 38faff1

Browse files
devploitclaude
andcommitted
Update README to reflect v1.2.0 features and current output format
- Updated output example to match compact banner, multi-sample calibration, and smart dedup summaries - Added new features to Features section: smart filtering, dedup, retries, progress bar, color-coded output - Updated How It Works to describe multi-sample calibration with tolerance, smart filtering, and retry logic - Added --version flag to Options section - Added stdin pipe usage example Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a44e39e commit 38faff1

1 file changed

Lines changed: 36 additions & 28 deletions

File tree

README.md

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,16 @@
3232

3333
## Introduction
3434

35-
`nomore403` is an innovative tool designed to help cybersecurity professionals and enthusiasts bypass HTTP 40X errors encountered during web security assessments. Unlike other solutions, `nomore403` automates various techniques to seamlessly navigate past these access restrictions, offering a broad range of strategies from header manipulation to method tampering.
35+
`nomore403` is a tool designed to help cybersecurity professionals bypass HTTP 40X errors encountered during web security assessments. It automates various techniques to navigate past access restrictions, from header manipulation to method tampering, with smart output filtering to highlight only the results that matter.
3636

3737
## Features
3838

39-
- **Auto-calibration**: Automatically detects server base responses to identify successful bypasses
39+
- **Auto-calibration**: Multi-sample calibration with tolerance detection to accurately identify successful bypasses
40+
- **Smart filtering**: Automatically hides results matching the default response, showing only interesting differences
41+
- **Deduplication**: Groups repeated results per technique, showing up to 3 examples with a summary count
42+
- **Retry with backoff**: Automatic retries on transient errors (timeouts, connection resets) with exponential backoff
43+
- **Progress tracking**: Per-technique progress bar on TTY terminals, with clean output in pipes/CI
44+
- **Color-coded output**: Status codes and content-length are colored based on significance (green = likely bypass, red = blocked)
4045
- **Multiple bypass techniques**: Implements 8 different techniques to bypass restrictions
4146
- **High concurrency**: Uses goroutines for fast and efficient testing
4247
- **Customizable**: Easily add new payloads and techniques
@@ -104,10 +109,10 @@ nomore403 -u https://domain.com/admin -f /path/to/your/preferred/location/payloa
104109

105110
## How It Works
106111

107-
1. **Auto-calibration**: The tool makes a request to a non-existent path to determine the base response
108-
2. **Default request**: Makes a standard request to the target for comparison
109-
3. **Technique application**: Executes selected techniques in parallel
110-
4. **Result filtering**: Shows only responses that differ from the initial calibration (unless verbose mode is used)
112+
1. **Auto-calibration**: Makes 3 requests to non-existent paths and calculates the average response size with a dynamic tolerance range. This creates a reliable baseline to filter false positives.
113+
2. **Default request**: Makes a standard request to the target to capture the "blocked" response signature (status code + content-length).
114+
3. **Technique execution**: Runs selected techniques concurrently with per-technique progress bars. Requests are retried automatically on transient errors with exponential backoff.
115+
4. **Smart filtering**: Only shows responses that differ meaningfully from the default blocked response — different status code or significantly different content-length. Repeated identical results are deduplicated with a summary count.
111116

112117
## Customization
113118

@@ -128,47 +133,44 @@ To edit or add new bypasses, modify the payloads directly in the [payloads](http
128133
### Output example
129134

130135
```bash
131-
━━━━━━━━━━━━━━ NOMORE403 CONFIGURATION ━━━━━━━━━━━━━━━━━━
132-
Target: https://domain.com/admin
133-
Headers: false
134-
Proxy: false
135-
User Agent: nomore403
136-
Method: GET
137-
Payloads folder: payloads
138-
Custom bypass IP: false
139-
Follow Redirects: false
140-
Rate Limit detection: false
141-
Status:
142-
Timeout (ms): 6000
143-
Delay (ms): 0
144-
Techniques: verbs, verbs-case, headers, endpaths, midpaths, double-encoding, http-versions, path-case
145-
Unique: false
146-
Verbose: false
136+
━━━━━━━━━━━━━━━━━ NOMORE403 ━━━━━━━━━━━━━━━━━━
137+
Target: https://domain.com/admin
138+
Method: GET User-Agent: nomore403
139+
Timeout: 6000ms Delay: 0ms
140+
Proxy: - Bypass IP: -
141+
Flags: -
142+
Techniques: verbs, verbs-case, headers, endpaths, midpaths, double-encoding, http-versions, path-case
143+
Payloads: payloads
147144

148145
━━━━━━━━━━━━━━━ AUTO-CALIBRATION RESULTS ━━━━━━━━━━━━━━━
149-
[✔] Calibration URI: https://domain.com/admin/calibration_test_123456
146+
[✔] Calibration samples: 3
150147
[✔] Status Code: 404
151-
[✔] Content Length: 1821 bytes
148+
[✔] Avg Content Length: 1821 bytes (tolerance: ±50)
152149

153150
━━━━━━━━━━━━━ DEFAULT REQUEST ━━━━━━━━━━━━━
154-
403 429 bytes https://domain.com/admin
151+
403 429 bytes https://domain.com/admin
155152

156153
━━━━━━━━━━━━━ VERB TAMPERING ━━━━━━━━━━━━━━
157154

158155
━━━━━ VERB TAMPERING CASE SWITCHING ━━━━━━━
159156

160157
━━━━━━━━━━━━━ HEADERS ━━━━━━━━━━━━━━━━━━━━━
158+
200 2047 bytes X-Original-URL: /admin
159+
200 2047 bytes X-Rewrite-URL: /admin
160+
200 2047 bytes X-Custom-IP-Authorization: 127.0.0.1
161+
... and 12 more with 200/2047 bytes (use -v to see all)
161162

162163
━━━━━━━━━━━━━ CUSTOM PATHS ━━━━━━━━━━━━━━━━
163-
200 2047 bytes https://domain.com/;///..admin
164+
200 2047 bytes https://domain.com/;///..admin
165+
166+
━━━━━━━━━━━━━ MIDPATHS ━━━━━━━━━━━━━━━━━━━━
164167

165168
━━━━━━━━━━━━━ DOUBLE-ENCODING ━━━━━━━━━━━━━
166169

167170
━━━━━━━━━━━━━ HTTP VERSIONS ━━━━━━━━━━━━━━━
168-
403 429 bytes HTTP/1.0
169171

170172
━━━━━━━━━━ PATH CASE SWITCHING ━━━━━━━━━━━━
171-
200 2047 bytes https://domain.com/%61dmin
173+
200 2047 bytes https://domain.com/%61dmin
172174
```
173175

174176
### Basic Usage
@@ -205,6 +207,11 @@ Verbose: false
205207
./nomore403 -u https://domain.com/admin --status 200,302
206208
```
207209

210+
### Pipe URLs from stdin
211+
```bash
212+
cat urls.txt | ./nomore403
213+
```
214+
208215
## Options
209216

210217
```bash
@@ -236,6 +243,7 @@ Flags:
236243
-u, --uri string Specify the target URL for the request.
237244
-a, --user-agent string Specify a custom User-Agent string for requests (default: 'nomore403').
238245
-v, --verbose Enable verbose output for detailed request/response logging (not based on auto-calibrate).
246+
--version version for nomore403
239247
```
240248
241249
## Common Use Cases

0 commit comments

Comments
 (0)