Рецензия: Обход аутентификации путем раскрытия информации @ PortSwigger Academy

Этот отчет об обходе проверки подлинности в лабораторных условиях путем раскрытия информации является частью моей серии пошаговых руководств для Академии веб-безопасности PortSwigger .
Путь обучения : Темы на стороне сервера → Раскрытие информации
Скрипт Python: script.py
Описание лаборатории

Шаги
Анализ
Лабораторное приложение представляет собой сайт-магазин с очень интересными товарами. Как обычно, первым шагом является проверка сайта.
После небольшого просмотра и входа в систему с известными учетными данными ничего интересного не появляется. Время проверить запросы в Burp. Там тоже ничего особо интересного.
Конечная точка администратора в некоторых предыдущих лабораториях была найдена в разделе /admin
. Но чтобы не использовать эти знания, я могу использовать несколько способов обнаружения контента. Burp Professional поставляется с такой функциональностью, и несколько хороших бесплатных инструментов также позволяют находить контент.
Здесь я использую ffuf вместе с отличными списками слов, предоставленными SecLists :

Посещение конечной точки
Я захожу на эту страницу, чтобы получить это сообщение:

Больше никакой информации не дается.
Обычный способ распространения исходящих IP-адресов на веб-сервер (используемый в сценариях прокси или балансировки нагрузки) — это X-Forwarded-For
заголовок. Это, однако, не работает здесь (и в описании лаборатории указано, что это настраиваемый заголовок в любом случае).
Для получения дополнительной информации можно использовать два HTTP-глагола OPTIONS
и TRACE
. Последний дает интересный результат:

Предоставить пользовательский заголовок
Теперь, когда я знаю заголовок, доступ к интерфейсу администратора становится простым. Мне нужно убедиться, что пользовательский заголовок отправляется с каждым запросом, поэтому я добавляю Match and Replace
правило, чтобы всегда добавлять этот новый заголовок в запросы.
Я использую 127.0.0.1
в качестве содержимого, чтобы обмануть приложение, чтобы оно поверило, что запрос исходит от localhost
.

Теперь просто перезагрузите страницу в браузере, войдите в панель администратора и удалите пользователя carlos
, чтобы решить лабораторную работу:

Первоначально опубликовано на https://github.com .
New to Medium? Become a Medium member to access all stories on the platform and support me at no extra cost for you!