
🚫 Strumento avanzato per ricercatori di sicurezza per bypassare restrizioni 403/40X attraverso tecniche intelligenti e manipolazione adattiva delle richieste. Veloce. Preciso. Efficace.
nomore403 è uno strumento da riga di comando per testare bypass dei controlli di accesso HTTP e incongruenze del parser relative a risposte 401, 403 e affini.
Lo strumento è progettato per il lavoro pratico di sicurezza web: bug bounty, penetration testing, revisioni di sicurezza e test di regressione delle regole di controllo degli accessi. Automatizza un'ampia serie di mutazioni delle richieste, cattura una baseline, filtra i falsi positivi comuni ed evidenzia le risposte con maggiori probabilità di rappresentare un bypass significativo.
Data un URL di destinazione, nomore403:
curl per risultati interessanti.Questo strumento non "rompe l'autenticazione" da solo. Aiuta a trovare differenze nel modo in cui frontend, proxy, WAF, CDN, router applicativi e backend interpretano la stessa richiesta.
404 o da percorsi genitorenet/http normalizzagit clone https://github.com/devploit/nomore403
cd nomore403
go build
go install github.com/devploit/nomore403@latest
Se installi con go install, la directory payloads/ non viene installata automaticamente. Clona il repository e punta lo strumento a quella directory con -f se necessario.
curl disponibile in PATH per le tecniche che dipendono da esso, come:
http-versionshttp-parserabsolute-uriLa maggior parte delle tecniche funziona senza curl.
Scansione base:
./nomore403 -u https://target.tld/admin
Usa un proxy e output verbose:
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
Esegui solo tecniche selezionate:
./nomore403 -u https://target.tld/admin -k headers,absolute-uri,raw-desync
Leggi target da stdin:
cat urls.txt | ./nomore403
Usa un file di richiesta in stile Burp:
./nomore403 --request-file request.txt
Scrivi output leggibile dalla macchina:
./nomore403 -u https://target.tld/admin --jsonl -o findings.jsonl
target: https://target.tld/admin method: GET frontend: AWS ELB/ALB payloads: payloads
calib: 404 | 1245b | ±50 | frag 703b
BASELINE
default 403 520 bytes https://target.tld/admin
FINDINGS
hdr-ip 100! 200 2048 bytes X-Original-URL: /
abs-uri 26. 403 236 bytes request-target: https://target.tld/admin
http 18. 400 122 bytes HTTP/2
no visible results: 17 techniques
━━━━━━━━━━━━━━ LIKELY BYPASS ━━━━━━━━━━━━━━━━━
[!100 HIGH] Header injection (IP) 403=>200 2048b
why: status 403->200, len Δ1528, body changed, type changed
item: X-Original-URL: /
curl: curl -i -sS -k -H 'User-Agent: nomore403' -H 'X-Original-URL: /' 'https://target.tld/admin'
Ogni riga visibile è una risposta che differisce abbastanza dalla baseline da superare il filtraggio.
Campi tipici:
hdr-ip, abs-uri o parser18., 61+ o 100!I riepiloghi finali mostrano le transizioni da baseline a risultato:
403=>200 di solito merita attenzione immediata403=>302 può essere interessante, ma potrebbe ancora risolversi in una barriera di autenticazione403->400 o 403->404 di solito indicano differenze di parser o routing piuttosto che un bypassAlla fine dell'esecuzione, nomore403 stampa:
LIKELY BYPASS
curl riproducibileINTERESTING VARIATIONS
no visible results
Il punteggio è euristico. È inteso per prioritizzare i risultati, non per dimostrare lo sfruttamento.
Lo strumento generalmente premia:
2xx3xxLocationLo strumento generalmente declassa:
400 e 404 a meno che la risposta non cambi sostanzialmenteInterpretazione raccomandata:
HIGH: probabilmente utilizzabile; rivedere per primoMED: candidato plausibile; di solito vale un replay manualeLOW: differenza di parser, anomalia di routing o comportamento a bassa confidenzaL'autocalibrazione è abilitata per impostazione predefinita in modalità non verbose.
Invia richieste a diversi percorsi inesistenti e costruisce una baseline per il comportamento predefinito di errore del target. Esegue anche una richiesta di calibrazione basata su frammento per ridurre i falsi positivi causati da percorsi privi di frammento.
Usa questi flag per controllarlo:
--no-calibrate
--strict-calibrate
Location, Content-Type e ServerLo strumento esegue tutte le tecniche per impostazione predefinita, a meno che non si specifichi -k.
verbs
payloads/httpmethodsverbs-case
method-override
headers
hop-by-hop
Connectionheader-confusion
X-Original-URLhost-override
forwarded-trust
Forwarded, Client-IP, Cluster-Client-IP e catene di fiducia correlateproto-confusion
X-Forwarded-Proto, e suggerimenti di schema correlatiendpaths
payloads/endpathsmidpaths
payloads/midpathsdouble-encoding
unicode
%uXXXX e UTF-8 sovralungopath-case
path-normalization
suffix-tricks
.json, .css, e toggle di formato queryhttp-versions
HTTP/1.0 e HTTP/2http-parser
curl deliberatamente minima per esporre le differenze del parser client/frontend separatamente da http-versionsabsolute-uri
curl --request-targetraw-duplicates
raw-authority
raw-desync
Alcune tecniche necessitano di controllo a livello wire che il client net/http di Go non fornisce. Quelle tecniche usano il motore HTTP raw.
Le tecniche raw attualmente includono:
raw-duplicatesraw-authorityraw-desync%uXXXXNote:
Lo strumento può dedurre suggerimenti sul frontend come:
Questi suggerimenti sono usati per migliorare l'ordinamento delle tecniche e il contesto dell'output.
Importante:
-k, lo strumento esegue comunque l'intero set di tecniche predefinitoI risultati di alto valore vengono riprodotti automaticamente nel riepilogo finale.
L'output del replay aiuta a rispondere:
Il riepilogo finale include:
1/1 o 2/2 matched on replaycurl riproducibile per risultati interessanti./nomore403 -u https://target.tld/admin
./nomore403 -u targets.txt
cat targets.txt | ./nomore403
./nomore403 --request-file request.txt
I file di richiesta sono utili quando si riproduce traffico catturato in Burp o in un altro proxy.
Usa --payload-position quando vuoi iniettare payload in marcatori espliciti invece di fare affidamento solo sulla logica di mutazione endpath e midpath incorporata.
Esempio:
./nomore403 -u 'https://target.tld/§100§/admin/§200§' -p §
./nomore403 -u https://target.tld/admin
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
./nomore403 -u https://target.tld/admin -k absolute-uri,raw-duplicates,raw-authority,raw-desync
./nomore403 -u https://target.tld/admin -i 10.0.0.5
./nomore403 -u https://target.tld/admin --jsonl -o findings.jsonl
Esegui ./nomore403 --help per la CLI completa e aggiornata.
Flag chiave:
-u, --uri
-k, --technique
-x, --proxy
-H, --header
-i, --bypass-ip
-v, --verbose
--json
--jsonl
--no-calibrate
--strict-calibrate
La modalità predefinita è ottimizzata per la revisione interattiva e il triage.
Usa --json per un singolo documento strutturato.
Usa --jsonl quando vuoi:
La directory payloads/ contiene elenchi utilizzati da diverse tecniche.
I file attuali includono:
httpmethodsheadersipssimpleheadersendpathsmidpathsuseragentsPuoi personalizzare questi file per adattarli ai tuoi target o al tuo flusso di lavoro.
curl richiedono curl in PATHUsa questo strumento solo su sistemi che sei autorizzato a testare.
Gli autori e i contributori non sono responsabili per l'uso improprio. Sei responsabile del rispetto delle leggi applicabili, delle regole del programma e delle politiche organizzative.
I contributi sono benvenuti.
Le aree di contributo utili includono:
Prima di contribuire con una tecnica, preferisci:
Questo progetto è rilasciato sotto la licenza MIT. Vedi LICENSE.
X-Forwarded-Portip-encoding
;index.htmlpayload-position
--retry-count
--retry-backoff-ms
--host-delay
--top-score-min
LIKELY BYPASS--variation-score-min
INTERESTING VARIATIONS--top
0 per disabilitare i riepiloghi