
🚫 Outil avancé pour les chercheurs en sécurité afin de contourner les restrictions 403/40X grâce à des techniques intelligentes et une manipulation adaptative des requêtes. Rapide. Précis. Efficace.
nomore403 est un outil en ligne de commande permettant de tester les contournements du contrôle d'accès HTTP et les incohérences d'analyse autour des réponses 401, 403 et autres réponses associées.
L'outil est conçu pour les travaux pratiques de sécurité web : bug bounty, tests d'intrusion, revues de sécurité et tests de régression des règles de contrôle d'accès. Il automatise un large ensemble de mutations de requêtes, capture une référence, filtre les faux positifs courants et met en évidence les réponses les plus susceptibles de représenter un contournement significatif.
Étant donné une URL cible, nomore403 :
curl pour les découvertes intéressantes.Cet outil ne « casse pas l'authentification » en lui-même. Il aide à trouver les différences dans la manière dont les frontends, proxys, WAF, CDN, routeurs d'application et backends interprètent la même requête.
404 ou de chemins parentsnet/http normalisegit clone https://github.com/devploit/nomore403
cd nomore403
go build
go install github.com/devploit/nomore403@latest
Si vous installez avec go install, le répertoire payloads/ n'est pas installé automatiquement. Clonez le dépôt et pointez l'outil vers ce répertoire avec -f si nécessaire.
curl disponible dans PATH pour les techniques qui en dépendent, telles que :
http-versionshttp-parserabsolute-uriLa plupart des techniques fonctionnent sans curl.
Analyse de base :
./nomore403 -u https://target.tld/admin
Utiliser un proxy et une sortie verbose :
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
Exécuter uniquement certaines techniques :
./nomore403 -u https://target.tld/admin -k headers,absolute-uri,raw-desync
Lire les cibles depuis stdin :
cat urls.txt | ./nomore403
Utiliser un fichier de requête de style Burp :
./nomore403 --request-file request.txt
Écrire une sortie lisible par machine :
./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'
Chaque ligne visible correspond à une réponse qui s'est suffisamment écartée de la référence pour survivre au filtrage.
Champs typiques :
hdr-ip, abs-uri ou parser18., 61+ ou 100!Les résumés finaux montrent les transitions de la référence au résultat :
403=>200 mérite généralement une attention immédiate403=>302 peut être intéressant, mais peut encore rediriger vers une barrière d'authentification403->400 ou 403->404 signalent généralement des différences d'analyseur ou de routage plutôt qu'un contournementÀ la fin de l'exécution, nomore403 affiche :
CONTOURNEMENT PROBABLE
curl reproductibleVARIATIONS INTÉRESSANTES
aucun résultat visible
La notation est heuristique. Elle vise à prioriser les résultats, pas à prouver l'exploitation.
L'outil favorise généralement :
2xx3xxLocationL'outil dévalorise généralement :
400 et 404 sauf si la réponse change également de manière substantielleInterprétation recommandée :
HAUTE : probablement exploitable ; à examiner en premierMOYENNE : candidat plausible ; généralement intéressant à rejouer manuellementBASSE : différence d'analyseur, anomalie de routage ou comportement de moindre confianceL'auto-calibration est activée par défaut en mode non verbose.
Elle envoie des requêtes vers plusieurs chemins inexistants et construit une référence pour le comportement d'erreur par défaut de la cible. Elle effectue également une requête de calibration basée sur des fragments pour réduire les faux positifs causés par les chemins dont les fragments sont supprimés.
Utilisez ces drapeaux pour la contrôler :
--no-calibrate
--strict-calibrate
Location, Content-Type et ServerL'outil exécute toutes les techniques par défaut, sauf si vous spécifiez -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 et chaînes de confiance associéesproto-confusion
X-Forwarded-Proto, et indices de schéma associésendpaths
payloads/endpathsmidpaths
payloads/midpathsdouble-encoding
unicode
%uXXXX et UTF-8 surlonguespath-case
path-normalization
suffix-tricks
.json, .css, et les bascules de requête de type formathttp-versions
HTTP/1.0 et HTTP/2http-parser
curl délibérément minimale pour exposer les différences d'analyse entre client et frontend, séparément de http-versionsabsolute-uri
curl --request-targetraw-duplicates
raw-authority
raw-desync
Certaines techniques nécessitent un contrôle au niveau filaire que le client net/http de Go ne fournit pas. Ces techniques utilisent le moteur HTTP brut.
Les techniques brutes actuelles incluent :
raw-duplicatesraw-authorityraw-desync%uXXXXRemarques :
L'outil peut déduire des indications sur le frontend, comme :
Ces indices sont utilisés pour améliorer l'ordre des techniques et le contexte de la sortie.
Important :
-k, l'outil exécute toujours l'ensemble complet des techniques par défautLes résultats de grande valeur sont automatiquement rejoués dans le résumé final.
La sortie du rejeu aide à répondre :
Le résumé final inclut :
1/1 ou 2/2 matched on replaycurl reproductible pour les résultats intéressants./nomore403 -u https://target.tld/admin
./nomore403 -u targets.txt
cat targets.txt | ./nomore403
./nomore403 --request-file request.txt
Les fichiers de requête sont utiles pour rejouer du trafic capturé dans Burp ou un autre proxy.
Utilisez --payload-position lorsque vous souhaitez injecter des charges utiles à des marqueurs explicites plutôt que de vous fier uniquement à la logique de mutation intégrée de fin de chemin et de milieu de chemin.
Exemple :
./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
Exécutez ./nomore403 --help pour la CLI complète et à jour.
Drapeaux clés :
-u, --uri
-k, --technique
-x, --proxy
-H, --header
-i, --bypass-ip
-v, --verbose
--json
--jsonl
--no-calibrate
--strict-calibrate
Le mode par défaut est optimisé pour la revue interactive et le tri.
Utilisez --json pour un document structuré unique.
Utilisez --jsonl lorsque vous souhaitez :
Le répertoire payloads/ contient des listes utilisées par plusieurs techniques.
Fichiers actuels :
httpmethodsheadersipssimpleheadersendpathsmidpathsuseragentsVous pouvez personnaliser ces fichiers pour les adapter à vos cibles ou à votre flux de travail.
curl nécessitent curl dans PATHN'utilisez cet outil que sur des systèmes que vous êtes autorisé à tester.
Les auteurs et contributeurs ne sont pas responsables d'une mauvaise utilisation. Vous êtes responsable du respect des lois applicables, des règles du programme et des politiques organisationnelles.
Les contributions sont les bienvenues.
Les domaines de contribution utiles incluent :
Avant de contribuer une technique, privilégiez :
Ce projet est publié sous licence MIT. Voir LICENSE.
X-Forwarded-Portip-encoding
;index.htmlpayload-position
--retry-count
--retry-backoff-ms
--host-delay
--top-score-min
CONTOURNEMENT PROBABLE--variation-score-min
VARIATIONS INTÉRESSANTES--top
0 pour désactiver les résumés