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

155 lines
9.4 KiB
Markdown
Raw Normal View History

# Bypass 403 & 401
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le piratage 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 façons 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 [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="../../.gitbook/assets/image (11).png" alt=""><figcaption></figcaption></figure>
**Configuration instantanément disponible pour l'évaluation des vulnérabilités et les tests de pénétration**. Exécutez un test de pénétration 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 testeurs de pénétration - 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.
{% 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 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 remplacer 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.
2021-09-19 15:52:48 +00:00
## Fuzzing des en-têtes HTTP
2021-09-19 15:52:48 +00:00
* **Changer l'en-tête Host** en une valeur arbitraire ([qui a fonctionné ici](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
* 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 d'authentification HTTP Basic et NTLM (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 de l'**HTTP Request Smuggling** ou des **en-têtes hop-by-hop**.
* Fuzz des [**en-têtes HTTP spéciaux**](special-http-headers.md) à 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.
2021-09-19 15:52:48 +00:00
## Fuzzing du 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 encodés à nouveau, cela sera _//chemin_ et peut-être aurez-vous 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 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**](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 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](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Changer 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 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**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Essayez l'authentification de base, digest et NTLM.
{% code title="Identifiants courants" %}
```
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
```
{% endcode %}
## 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 (11).png" alt=""><figcaption></figcaption></figure>
**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 aux rapports. 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.
{% embed url="https://pentest-tools.com/" %}
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le piratage 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 façons 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 [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>