Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
web:injection_lfi [2016/02/02 07:56] arkinar |
web:injection_lfi [2016/07/04 08:38] (Version actuelle) |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
L’intérêt est multiple : | L’intérêt est multiple : | ||
- | - D’accéder au code source de fichiers privés stockés sur le serveur ciblé par l’attaque | + | - D’accéder au code source de fichiers privés stockés sur le serveur ciblé par l’attaque. |
- | - D’exécuter un script disponible sur le serveur dans un contexte non conventionnel (non prévu) | + | - D’exécuter un script disponible sur le serveur dans un contexte non conventionnel. |
Cette faille est appelée ainsi car elle est en rapport avec le nom de la fonction PHP utilisée pour inclure un flux (include) | Cette faille est appelée ainsi car elle est en rapport avec le nom de la fonction PHP utilisée pour inclure un flux (include) | ||
Ligne 22: | Ligne 22: | ||
si on le multiplie un certain nombre de fois , nous remontons jusqu'à la racine du site qui est généralement /var/www/ | si on le multiplie un certain nombre de fois , nous remontons jusqu'à la racine du site qui est généralement /var/www/ | ||
- | Si le script plante c’est que l’application est très probablement vulnérable ou que le paramètre est filtré. | + | Si le script plante, c’est que l’application est très probablement vulnérable ou que le paramètre est filtré. |
Les erreurs pouvant être affichées par PHP pourraient être les suivantes : | Les erreurs pouvant être affichées par PHP pourraient être les suivantes : | ||
Ligne 34: | Ligne 34: | ||
__La LFI Basique :__ | __La LFI Basique :__ | ||
- | Imaginons qu’il existe un fichier nommé “password.xml” dans un sous-dosssier “admin”,en temps normal se dossier et interdit au utilisateur. | + | Imaginons qu’il existe un fichier nommé “password.xml” dans un sous-dossier “admin”, en temps normal ce dossier est interdit aux utilisateurs. |
Cependant grâce à la LFI il serait possible d’afficher son contenu en appelant la ressource comme il suit : | Cependant grâce à la LFI il serait possible d’afficher son contenu en appelant la ressource comme il suit : | ||
Ligne 53: | Ligne 53: | ||
Ce caractère est représenté en hexadécimal, dans la table ASCII, par la valeur x00. | Ce caractère est représenté en hexadécimal, dans la table ASCII, par la valeur x00. | ||
- | Les personnes qui développe en C doivent être familiarisées avec ce caractère. | + | Les personnes qui développent en C sont familiarisées avec ce caractère. |
Pour stipuler la fin de notre chaine de caractère nous allons rajouter à la fin de notre url %00 | Pour stipuler la fin de notre chaine de caractère nous allons rajouter à la fin de notre url %00 | ||
Ligne 63: | Ligne 63: | ||
__Les Wrappers Php__ | __Les Wrappers Php__ | ||
- | Pour récupérer le code source d'une page php, si vous utiliser la technique basique il vous affichera la page php mais exécuté par le serveur. | + | Pour récupérer le code source d'une page php, en utilisant la technique basique, le serveur vous affichera la page php mais exécuté par celui-ci. |
Pour récupérer son code source il faut utiliser une autre technique : | Pour récupérer son code source il faut utiliser une autre technique : | ||
Ligne 80: | Ligne 80: | ||
Si vous n’avez pas les outils pour le faire en local, sachez qu’il en existe de nombreux en ligne, comme par exemple : [[http://www.base64decode.org]] | Si vous n’avez pas les outils pour le faire en local, sachez qu’il en existe de nombreux en ligne, comme par exemple : [[http://www.base64decode.org]] | ||
- | __Les LFI avancés__ | + | __Les LFI avancées__ |
- | Certaines LFI ne se trouvent pas facilement mais une technique permet d'échapper à certain filtre : | + | Certaines LFI ne se trouvent pas facilement mais une technique permet d'échapper à certains filtres : |
- | L'encodage url , elle permet comme son nom l'indique d'encoder une url pour éviter les filtre sur certain caractère. | + | L'encodage url permet comme son nom l'indique d'encoder une url pour éviter les filtres sur certains caractères. |
Par exemple si le serveur filtre les / dans les paramètres pris par la variable page | Par exemple si le serveur filtre les / dans les paramètres pris par la variable page | ||
Ligne 92: | Ligne 92: | ||
Si nous effectuons une LFI Basique nous nous retrouverons en face d'un "FORBIDDEN ACCESS" | Si nous effectuons une LFI Basique nous nous retrouverons en face d'un "FORBIDDEN ACCESS" | ||
- | Quoi de plus frustrant mais si nous réessayons comme ceci : | + | Quoi de plus frustrant, mais si nous réessayons comme ceci : |
http://localhost/lfi.php?page=admin%2fpassword.xml | http://localhost/lfi.php?page=admin%2fpassword.xml |