Updated Jul 14, 2026

Vulnerabilities

Confirm whether a 403 Forbidden still holds

A focused Go script that probes 403 Forbidden responses for known bypasses.

Agent

overview

What bypass-403 does

After a fuzzer or crawler surfaces a 403, bypass-403 asks one question: does the restriction hold under path mangling, spoofed headers, method swaps, and case changes. A non-403 status means the edge rule and the app disagree.

Inputs are narrow: -url for the host, -path for the forbidden route. The script cycles its payload set and prints status plus response size per request so a bypass stands out against a flat 403 baseline.

It does not discover paths. Pair it with ffuf or katana upstream; use nomore403 when you want a wider payload set and concurrency knobs. Trickest runs it as a managed Vulnerabilities node that writes a file and a folder.

source github.com/daffainfo/bypass-403

use cases

Where bypass-403 fits

Confirm an access-control flaw

Point bypass-403 at a path that returns 403 and let it try its tricks, so you learn whether the restriction holds or folds to a simple bypass.

Triage forbidden endpoints from a fuzzer

Run it across the 403 responses a content fuzzer surfaced to find the few that a header or path trick turns into real access.

Test admin and internal paths

Check restricted admin or internal endpoints for bypasses before assuming the 403 in front of them is sufficient protection.

Validate WAF and proxy rules

Probe whether a path blocked at the edge is still reachable through method or header variations, exposing rules that the app behind them does not enforce.

reference

bypass-403 inputs and flags

2 inputs
NameTypeFlagDescription
target-urlSTRING-urlTarget URL hosting the protected endpoint.
pathSTRING-pathThe forbidden endpoint to test, for example admin.

Showing key inputs. bypass-403 exposes 2 inputs in total.

example

Run bypass-403

bypass-403 · command
# probe one forbidden path with every bypass payloadbypass-403 -url https://example.com -path admin
sample output
--> https://example.com/admin403,146--> https://example.com/%2e/admin403,146--> https://example.com/admin/..;/200,10585--> https://example.com/admin   X-Original-URL: /admin200,10585--> https://example.com/admin   X-Forwarded-For: 127.0.0.1403,146

guidance

Choosing bypass-403

Use bypass-403 when a known path returns 403 and you need to know if the block can be defeated. Feed it forbidden routes from ffuf or katana; it does not discover paths. For broader templated checks, pair with nuclei. For a wider bypass payload set, prefer nomore403.

nomore403

Wider 403 bypass payload set with concurrency and rate options. bypass-403 stays the lighter single-purpose script.

nuclei

Runs templated checks across many classes of findings. bypass-403 answers one access-control question on a known path.

ffuf

Finds forbidden paths. bypass-403 then tests whether each 403 can be reached.

faq

bypass-403 questions

Send the request in a form the edge filter misses but the backend still honors: mangle the path (/admin/..;/, /%2e/admin, trailing dot, encoded space), spoof headers like X-Original-URL or X-Forwarded-For, or swap the HTTP method. bypass-403 automates these against one -url and -path and shows which return a non-403 code.

Run bypass-403 yourself

ffuf surfaces forbidden paths on a target, then bypass-403 tries its tricks on each one and writes the endpoints it managed to reach as a queryable output.

Facts on this page come from the live Trickest tool library.