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

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

Этичный Хакер

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.

Я разработал инструмент для сбора всех хостов, у которых есть этот путь, с конкретным ответом 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 и т. д.



Report Page