От страницы phpinfo до критических уязвимостей и RCE

От страницы phpinfo до критических уязвимостей и RCE

Security

Symfony - это набор компонентов PHP и PHP-фреймворк для создания веб-приложений, API, микросервисов и веб-сервисов.

Аудит

Во время аудита на ошибки была обнаружена страница phpinfo, которая считалась ошибкой P4. Было решено добиться от нее более высокого воздействия, поэтому, чтобы найти учетные данные или ключи базы данных, потому что многократно были обнаружены на ней конфиденциальные данные, такие как учетные данные баз данных, приватные токены и так далее:

Во время чтения было замечено app_secret.

Переменная среды APP_SECRET требуется для создания CSRF токенов. По умолчанию symfony / framework-bundle генерирует её при установке через Symfony Flex.

После прочтения файла phpinfo был обнаружен токен app_secret.

Как использовать этот секретный токен

Мы можем использовать его с помощью пути /_fragment.

Путь /_fragment может быть использован для вызова функции System(), которая позволяет выполнять команды на сервере.

Обычно этот путь возвращает 403 Forbidden и ответ Oops! An Error Occurred.

Дальше был скачен с GitHub инструмент, который делает сбор всех хостов, у которых есть этот путь, с конкретным ответом Oops! An Error Occurred.

Вы можете этот инструмент на github --> matchizer_Tool.

python3 matchizer.py -urls hosts.txt -URL /_Fragment -match 'Oops! An Error Occurred' -include

Было обнаружено много хостов на фреймворке Symfony, а затем использован этот скрипт для автоматизации эксплуатации--> automate-exploit

Был добавлен токен app_secret, который найден в phpinfo, как параметр -secret.

python3 exploit.py 'http://sub.website.com/_fragment' --method 1 --secret '<secret>' --algo 'sha256' --internal-url 'http://sub.website.com/_fragment' --function phpinfo --parameters what:-1

Этот скрипт даст вам полный путь для выполнения функций.

Выполнить функцию phpinfo

Выполнить функцию phpcredits

Вывод

Если вы нашли какую-либо страницу phpinfo, не сообщайте её как P4, а сначала прочтите этот файл и найдите любую утечку конфиденциальных данных, например DB_USER, DB_PASSWORD, SECURE_AUTH_KEY, AUTH_SALT, SECURE_AUTH_SALT, APP_SECRET, чтобы получить P1 или RCE в Symfony и т. д.


Конец

⚡️ Канал - ссылка

📺 YouTube - ссылка

Report Page