hacktricks/network-services-pentesting/pentesting-web/403-and-401-bypasses.md

154 lines
9.5 KiB
Markdown
Raw Normal View History

# Contournements des erreurs 403 & 401
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Autres moyens de soutenir HackTricks :
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**Configuration immédiatement disponible pour l'évaluation de la vulnérabilité & le pentesting**. Lancez un pentest complet de n'importe où avec plus de 20 outils & fonctionnalités allant de la reconnaissance au rapport. Nous ne remplaçons pas les pentesters - nous développons des outils personnalisés, des modules de détection & d'exploitation pour leur redonner du temps pour approfondir, obtenir des shells, et s'amuser.
{% embed url="https://pentest-tools.com/" %}
## Fuzzing des Verbes/Méthodes HTTP
2021-09-19 15:52:48 +00:00
2023-06-03 13:10:46 +00:00
Essayez d'utiliser **différents verbes** pour accéder au fichier : `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
2021-09-19 15:52:48 +00:00
* Vérifiez les en-têtes de réponse, peut-être que certaines informations peuvent être données. 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 remplacer le verbe utilisé.
* Utilisez le verbe **`TRACE`** et si vous avez beaucoup de chance, peut-être que dans la réponse vous pourrez aussi voir les **en-têtes ajoutés par les proxies intermédiaires** qui pourraient être utiles.
2021-09-19 15:52:48 +00:00
## Fuzzing des En-têtes HTTP
2021-09-19 15:52:48 +00:00
* **Changez l'en-tête Host** pour une valeur arbitraire ([cela a fonctionné ici](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
* Essayez d'[**utiliser d'autres User Agents**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) pour accéder à la ressource.
* **Fuzz des En-têtes HTTP** : Essayez d'utiliser des **En-têtes de Proxy HTTP**, l'authentification HTTP Basic et NTLM par force brute (avec seulement quelques combinaisons) et d'autres techniques. Pour faire tout cela, j'ai créé l'outil [**fuzzhttpbypass**](https://github.com/carlospolop/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 du [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **ou** des [**en-têtes hop-by-hop**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
* Fuzz des [**en-têtes HTTP spéciaux**](special-http-headers.md) à la recherche d'une réponse différente.
* **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.
2021-09-19 15:52:48 +00:00
## **Fuzzing de Chemin**
2021-09-19 15:52:48 +00:00
Si _/chemin_ est bloqué :
2021-09-19 15:52:48 +00:00
* 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%8f**chemin_ (Les caractères encodés en URL sont comme "/") donc une fois décodés, cela donnera _//chemin_ et peut-être que vous aurez déjà contourné la vérification du nom _/chemin_
2023-06-03 13:10:46 +00:00
* **Autres contournements de chemin** :
* site.com/secret > HTTP 403 Interdit
* 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**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) dans les situations suivantes :
* /FUZZsecret
* /FUZZ/secret
* /secretFUZZ
* **Autres contournements d'API :**
* /v3/users\_data/1234 --> 403 Interdit
* /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ètre JSON)
* user\_id=ID\_ATTAQUANT\&user\_id=ID\_VICTIME (Pollution de Paramètre)
## **Manipulation de Paramètre**
* 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 sur les paramètres — fournissez des valeurs comme _-234_ ou _0_ ou _99999999_ (juste quelques valeurs d'exemple).
## **Version du Protocole**
Si vous utilisez HTTP/1.1 **essayez d'utiliser 1.0** ou même testez si cela **supporte 2.0**.
## **Autres Contournements**
* 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 communes ([Cela a fonctionné pour ce gars avec Facebook](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Changez le protocole** : de http à https, ou de https à http
* Allez sur [**https://archive.org/web/**](https://archive.org/web/) et vérifiez si dans le passé ce fichier était **accessible dans le monde entier**.
## **Force Brute**
* **Devinez le mot de passe** : Testez les identifiants communs suivants. Savez-vous quelque chose sur la victime ? Ou le nom du challenge CTF ?
* [**Force brute**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Essayez l'authentification basique, digest et NTLM.
{% code title="Identifiants communs" %}
```
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
```
## Outils Automatiques
2022-04-22 08:32:18 +00:00
* [https://github.com/lobuhi/byp4xx](https://github.com/lobuhi/byp4xx)
* [https://github.com/iamj0ker/bypass-403](https://github.com/iamj0ker/bypass-403)
* [https://github.com/gotr00t0day/forbiddenpass](https://github.com/gotr00t0day/forbiddenpass)
2023-06-03 13:10:46 +00:00
* [Extension Burp - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
* [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
2022-04-28 16:01:33 +00:00
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**Configuration immédiatement disponible pour l'évaluation de vulnérabilité & le pentesting**. Lancez un pentest complet de n'importe où avec plus de 20 outils & fonctionnalités allant de la reconnaissance au rapport. Nous ne remplaçons pas les pentesters - nous développons des outils personnalisés, des modules de détection & d'exploitation pour leur redonner du temps pour approfondir, obtenir des shells, et s'amuser.
{% embed url="https://pentest-tools.com/" %}
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le hacking AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Autres moyens de soutenir HackTricks :
2022-04-28 16:01:33 +00:00
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>