
🚫 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 :