cyber:vulnerabilite:http_methods
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| cyber:vulnerabilite:http_methods [2025/06/27 15:17] – admin | cyber:vulnerabilite:http_methods [2025/07/13 14:44] (Version actuelle) – [Exemple 1] admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== | + | ====== |
| ===== Description ===== | ===== Description ===== | ||
| - | Dans le domaine de l' | ||
| - | Cette activité s'avère indispensable lorsqu' | + | **Les méthodes HTTP sont des verbes utilisés dans les requêtes HTTP pour indiquer l'action à effectuer |
| - | ===== Prérequis | + | D' |
| + | * **GET** sert à obtenir une représentation de la ressource spécifiée. Par exemple, on récupérera des informations sur un utilisateur avec un GET (GET / | ||
| + | * **POST** sert à soumettre une nouvelle entité à la ressource spécifiée. Par exemple, on enregistrera un nouvel utilisateur sur une plateforme avec un formulaire soumis via un POST (POST / | ||
| + | * **PUT** sert à remplacer les données de la ressource spécifiée avec les données de la requête. Par exemple, on mettra à jour les informations | ||
| + | * **DELETE** sert à supprimer la ressource spécifiée. Par exemple, on supprimera un utilisateur avec la méthode DELETE (DELETE / | ||
| - | Pour mener une analyse de logs, il est impératif | + | Exemple |
| - | ==== Connaissances nécessaires ==== | + | <code http> |
| + | GET / | ||
| + | Host: www.example.com | ||
| + | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/ | ||
| + | Accept: text/ | ||
| + | Accept-Encoding: | ||
| + | Accept-Language: | ||
| + | Cookie: sessionID=12345; username=john.doe | ||
| + | </ | ||
| - | * Compréhension | + | Réponse |
| - | | + | |
| - | * Maîtrise | + | <code html> |
| + | HTTP/1.1 200 OK | ||
| + | Date: Thu, 31 Mar 2023 10:15:00 GMT | ||
| + | Content-Type: | ||
| + | Content-Length: | ||
| + | Connection: keep-alive | ||
| + | Server: Apache/ | ||
| + | X-Powered-By: | ||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||
| + | | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | On notera que toutes les APIs et toutes les applications ne respectent pas nécessairement la RFC. | ||
| + | |||
| + | Les services web exposent parfois involontairement | ||
| + | |||
| + | ===== Prérequis d' | ||
| + | Pour exploiter cette vulnérabilité, | ||
| + | |||
| + | ==== Connaissances nécessaires ==== | ||
| + | * Connaissance | ||
| + | * Maîtrise de la notion de méthode HTTP. | ||
| ==== Outils nécessaires ==== | ==== Outils nécessaires ==== | ||
| - | * Des outils | + | * Outils de modification et/ou d’interception |
| - | * Un éditeur de texte avancé ou un outil capable de traiter de grands volumes de données textuelles peut également être utile. | + | |
| ===== Flux d' | ===== Flux d' | ||
| Ligne 26: | Ligne 65: | ||
| ==== Explorer ==== | ==== Explorer ==== | ||
| - | Collecter des données de log à partir de différentes sources comme les serveurs, les routeurs, les firewalls | + | Naviguer sur l’application pour récupérer |
| ==== Expérimenter ==== | ==== Expérimenter ==== | ||
| - | Analyser les données de log collectées pour trouver | + | Pour chacune |
| - | + | ||
| - | Par exemple, lors de l' | + | |
| ==== Exploiter ==== | ==== Exploiter ==== | ||
| - | Consultez les solutions de chaque challenge. | ||
| - | ===== Bénéfices potentiels | + | ===== Conséquences potentielles |
| - | L' | + | Une exploitation réussie de ce type de vulnérabilité |
| - | * La découverte | + | * Le contournement |
| - | * L'identification d' | + | * L'accès à des ressources sensibles |
| - | * La compréhension des impacts d'une attaque ou d'une défaillance sur un système. | + | |
| - | ===== Prérequis | + | ===== Contre-mesures |
| - | Les prérequis suivants | + | Les contre-mesures suivantes |
| - | * Mettre en place et appliquer une politique de journalisation adaptée au exigences légales | + | * Configurer le serveur web pour n' |
| - | * Utiliser des outils de surveillance et d'analyse | + | * Utiliser des contrôles |
| + | * Utiliser un pare-feu applicatif pour bloquer les requêtes HTTP non autorisées ou suspectes. | ||
| - | ====== | + | ====== |
| + | Les scénarios suivants peuvent être joués via l’exploitation de cette vulnérabilité : | ||
| + | * L' | ||
| + | * L' | ||
| ===== Exemple 1 ===== | ===== Exemple 1 ===== | ||
| + | Voici une configuration Apache potentiellement vulnérable aux modifications de méthodes HTTP : | ||
| - | Voici un exemple de logs Apache qui pourraient indiquer une tentative d' | + | <code apache> |
| - | + | < | |
| - | < | + | |
| - | 127.0.0.1 - - [21/Jan/2022: | + | |
| - | 127.0.0.1 - - [21/ | + | </Directory> |
| - | 127.0.0.1 - - [21/Jan/ | + | |
| </ | </ | ||
| - | Dans cet exemple, trois requêtes HTTP distinctes sont envoyées au serveur | + | Cette configuration permet aux utilisateurs de l' |
| - | * La première requête contient | + | Voici une nouvelle version |
| - | < | + | < |
| - | 1' OR ' | + | < |
| + | AllowOverride None | ||
| + | <Limit GET POST> | ||
| + | Require all granted | ||
| + | </ | ||
| + | </ | ||
| </ | </ | ||
| - | dans le paramètre **id**. | + | Cette configuration permet uniquement |
| - | * La deuxième requête, avec la chaîne | + | ===== Exemple 2 ===== |
| - | < | ||
| - | 1' OR ' | ||
| - | </ | ||
| - | , est une autre tentative | + | Un attaquant identifie |
| + | L'attaquant | ||
| - | * La troisième requête est une tentative d' | + | <code shell> |
| - | ===== Exemple | + | $ curl -X GET vulnerable.org/ |
| + | > < HTTP/2 401 | ||
| + | > [...] | ||
| + | > Forbidden | ||
| + | </ | ||
| + | En modifiant la méthode HTTP utilisée, l' | ||
| - | Voici un exemple de logs Nginx qui pourraient indiquer une tentative d' | + | <code shell> |
| - | <code class=" | + | $ curl -X POST vulnerable.org/api/v1//user/5678/info -i |
| - | 127.0.0.1 - - [21/Jan/2022: | + | > < HTTP/2 200 |
| - | 127.0.0.1 - - [21/ | + | > [...] |
| + | > username: victim | ||
| + | > [...] | ||
| </ | </ | ||
| - | Dans cet exemple, deux requêtes HTTP sont envoyées au serveur Nginx. | + | ====== CWEs ====== |
| - | * La première requête tente d' | + | * [[https://cwe.mitre.org/ |
| - | * La deuxième requête tente d' | + | |
| - | + | ||
| - | ===== References ===== | + | |
| - | URL : | + | ====== References ====== |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| + | URL : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| ====== Retour fiches vulnérabilités ====== | ====== Retour fiches vulnérabilités ====== | ||
| * [[cyber: | * [[cyber: | ||
cyber/vulnerabilite/http_methods.1751030242.txt.gz · Dernière modification : 2025/06/27 15:17 de admin
