cyber:vulnerabilite:html_cookies
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
cyber:vulnerabilite:html_cookies [2025/06/27 15:07] – créée admin | cyber:vulnerabilite:html_cookies [2025/07/11 15:09] (Version actuelle) – [CWEs] admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== HTTP - Cookies ====== | ||
+ | ===== Description ===== | ||
+ | |||
+ | **Cette vulnérabilité repose sur l' | ||
+ | |||
+ | * La première forme consiste à accéder aux cookies HTTP pour extraire les données potentiellement sensibles qu'ils contiennent. | ||
+ | * La seconde forme consiste à intercepter ces données lorsqu' | ||
+ | * La troisième forme est celle où le contenu du cookie est modifié par l' | ||
+ | |||
+ | ===== Prérequis d' | ||
+ | |||
+ | Pour exploiter cette vulnérabilité, | ||
+ | |||
+ | ==== Connaissances nécessaires ==== | ||
+ | * Maîtrise du protocole HTTP (notion d' | ||
+ | * Maîtrise de la notion de session utilisateur ; | ||
+ | * Connaissances de base sur des outils de modification et/ou d’interception de requêtes (Burp, Curl). | ||
+ | |||
+ | ==== Outils nécessaires ==== | ||
+ | * Avoir accès à la console développeur du navigateur (Firefox, Chrome) et à des outils de modification et/ou d’interception de requêtes (Burp, Curl). | ||
+ | |||
+ | ===== Flux d' | ||
+ | |||
+ | ==== Explorer ==== | ||
+ | |||
+ | Naviguer sur l’application afin de générer un cookie. Il peut s'agir d'un utilisateur final légitime souhaitant élever ses privilèges ou d'une personne écoutant le réseau pour obtenir un cookie HTTP. | ||
+ | |||
+ | ==== Expérimenter ==== | ||
+ | |||
+ | Tenter d' | ||
+ | |||
+ | ==== Exploiter ==== | ||
+ | |||
+ | ===== Conséquences potentielles ===== | ||
+ | |||
+ | Une exploitation réussie de ce type de vulnérabilité peut permettre : | ||
+ | * L' | ||
+ | * L' | ||
+ | |||
+ | ===== Contres-mesures ===== | ||
+ | |||
+ | Les contre-mesures suivantes peuvent être mises en œuvre : | ||
+ | * Utilisez la validation des entrées pour les cookies ; | ||
+ | * Utilisez SSL/TLS pour protéger le cookie en transit (protocole HTTP) ; | ||
+ | * Assurez-vous que le serveur web met en œuvre tous les correctifs de sécurité pertinents. | ||
+ | |||
+ | ====== Comment cela fonctionne ====== | ||
+ | |||
+ | Le scénario suivant peut être joué via l’exploitation de cette vulnérabilité : | ||
+ | * Un attaquant parvient à intercepter les requêtes HTTP d'une application à l'aide d'une attaque de type MiTM (Man in The Middle). Il parvient alors à récupérer les cookies d'un utilisateur et se connecte avec ce cookie. Il peut alors usurper son identité et lancer une attaque de type phishing afin de récupérer ou pivoter sur d' | ||
+ | {{ : | ||
+ | |||
+ | |||
+ | ===== Exemple 1 ===== | ||
+ | |||
+ | Voici un exemple de requête HTTP simple avec un cookie contenant une donnée sensible : | ||
+ | |||
+ | < | ||
+ | GET /page.php HTTP/1.1 | ||
+ | Host: www.example.com | ||
+ | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/ | ||
+ | Accept: text/ | ||
+ | Accept-Language: | ||
+ | Accept-Encoding: | ||
+ | Connection: keep-alive | ||
+ | Cookie: sessionID=abc1234; | ||
+ | </ | ||
+ | |||
+ | Dans cette requête, nous envoyons un cookie nommé " | ||
+ | |||
+ | Il est important de noter que l' | ||
+ | |||
+ | ===== Exemple 2 ===== | ||
+ | |||
+ | L' | ||
+ | Il est facile pour un attaquant de modifier la valeur " | ||
+ | |||
+ | <code Java> | ||
+ | Cookie[] cookies = request.getCookies(); | ||
+ | for (int i =0; i< cookies.length; | ||
+ | Cookie c = cookies[i]; | ||
+ | if (c.getName().equals(" | ||
+ | userRole = c.getValue(); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Exemple 3 ===== | ||
+ | |||
+ | |||
+ | Dans l' | ||
+ | |||
+ | La modification de la valeur d'un cookie du côté client est triviale, mais de nombreux développeurs supposent que les cookies sont essentiellement immuables. | ||
+ | |||
+ | <code Java> | ||
+ | boolean authenticated = new Boolean(getCookieValue(" | ||
+ | if (authenticated) { | ||
+ | ... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ====== CWEs ====== | ||
+ | |||
+ | * [[https:// | ||
+ | * The application relies on the existence or values of cookies when performing security-critical operations, but it does not properly ensure that the setting is valid for the associated user. | ||
+ | |||
+ | * [[https:// | ||
+ | * The authentication scheme or implementation uses key data elements that are assumed to be immutable, but can be controlled or modified by the attacker. | ||
+ | |||
+ | * [[https:// | ||
+ | * The software does not encrypt sensitive or critical information before storage or transmission. | ||
+ | |||
+ | * [[https:// | ||
+ | * The software receives data from an HTTP agent/ | ||
+ | |||
+ | * [[https:// | ||
+ | * The web application uses persistent cookies, but the cookies contain sensitive information. | ||
+ | |||
+ | * [[https:// | ||
+ | * The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly. | ||
+ | |||
+ | * [[https:// | ||
+ | * The application stores sensitive information in cleartext in a cookie. | ||
+ | |||
+ | * [[https:// | ||
+ | * Authenticating a user, or otherwise establishing a new user session, without invalidating any existing session identifier gives an attacker the opportunity to steal authenticated sessions. | ||
+ | |||
+ | * [[https:// | ||
+ | * The web application does not sufficiently verify inputs that are assumed to be immutable but are actually externally controllable, | ||
+ | |||
+ | * [[https:// | ||
+ | * The software is composed of a server that relies on the client to implement a mechanism that is intended to protect the server. | ||
+ | |||
+ | * [[https:// | ||
+ | * The software stores security-critical state information about its users, or the software itself, in a location that is accessible to unauthorized actors. | ||
+ | |||
+ | ====== References ====== | ||
+ | |||
+ | URL : | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
====== Retour fiches vulnérabilités ====== | ====== Retour fiches vulnérabilités ====== | ||
* [[cyber: | * [[cyber: | ||
cyber/vulnerabilite/html_cookies.1751029675.txt.gz · Dernière modification : 2025/06/27 15:07 de admin