
CVE-2024-51567 — это PoC-эксплойт на Python, нацеленный на RCE-уязвимость в конечной точке upgrademysqlstatus в CyberPanel v2.3.6 и обходящий CSRF-защиту.
CVE-2024-51567 — это Python-скрипт эксплойта (proof-of-concept, PoC) для CVE-2024-51567, критической уязвимости внедрения команд, затрагивающей CyberPanel v2.3.6. Эта уязвимость, обнаруженная в конечной точке upgrademysqlstatus, позволяет удалённо выполнять команды (RCE) путём обхода защиты CSRF и использования метасимволов оболочки в определённых параметрах.
⚠️ Важное предупреждение: Этот скрипт предназначен для образовательных целей и авторизованного тестирования безопасности систем, которыми вы владеете или на тестирование которых у вас есть явное разрешение. Несанкционированное использование этого скрипта на любой системе незаконно и наказуемо по закону. Автор не несёт ответственности за неправомерное использование. Всегда соблюдайте этические нормы и действующее законодательство.
upgrademysqlstatus в databases/views.py CyberPanel (до коммита 5b08cd6) позволяет удалённым атакующим выполнять произвольные команды, обходя защиту secMiddleware, которая фильтрует только POST-запросы. Эта уязвимость может быть использована с помощью метасимволов оболочки в параметре statusfile./dataBases/upgrademysqlstatushttpxgit clone https://github.com/ajayalf/CVE-2024-51567.git
cd CVE-2024-51567
httpx установлен:
pip install httpx
Для запуска скрипта по одной цели используйте следующую команду:
python CVE-2024-51567.py <target-url>
Пример:
python CVE-2024-51567.py http://example.com
Чтобы запустить скрипт по нескольким целям, создайте текстовый файл со списком URL-адресов целей (по одному URL в строке) и используйте команду:
python CVE-2024-51567.py <targets.txt>
Пример:
python CVE-2024-51567.py targets.txt
Если вы хотите использовать несколько целей, создайте текстовый файл с именем targets.txt или любым другим предпочтительным именем. Формат файла должен представлять собой список URL-адресов, по одному URL в строке, как показано ниже:
http://target1.com
http://target2.com
http://target3.com
После подключения скрипта к цели вы можете вводить команды оболочки для выполнения на целевом сервере. Чтобы выйти, введите exit или quit.
get_CSRF_token(client): Получает CSRF-токен из куки на главной странице цели.
client (объект httpx.Client)pwn(client, CSRF_token, cmd): Отправляет специально сформированную полезную нагрузку с CSRF-токеном и нужной командой.
client (объект httpx.Client), CSRF_token (строка), cmd (строка)exploit(client, cmd): Выполняет функцию pwn на цели для запуска команды и выводит результат.
client (объект httpx.Client), cmd (строка)run_exploit(target): Инициализирует соединение с целью и запускает интерактивный цикл команд.
Если CSRF-токен не найден в куки, скрипт выведет все полученные куки и завершит работу с полезным сообщением об ошибке.
/ — правильная конечная точка для получения CSRF-токена. Если она другая, измените функцию get_CSRF_token соответствующим образом.За дополнительной информацией об этой уязвимости обращайтесь к следующим ресурсам:
targetexit или quit.Основное выполнение: Проверяет аргумент, чтобы определить, является ли цель одиночным URL-адресом или файлом с несколькими целями.