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

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

Этот отчет об обходе проверки подлинности в лабораторных условиях путем раскрытия информации является частью моей серии пошаговых руководств для Академии веб-безопасности 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!

Из статей Infosec: Каждый день в Infosec появляется много информации, за которой трудно уследить. Подпишитесь на наш еженедельный информационный бюллетень , чтобы БЕСПЛАТНО получать все последние тенденции информационной безопасности в виде 5 статей, 4 тем, 3 видео, 2 репозиториев и инструментов GitHub и 1 оповещения о вакансиях!