Что нового

Article [10.1] Burp Suite. Web cache poisoning attacks

Vander 0

Vander

Команда форума
10.11.2019
495
1 158
Приветствую уважаемую аудиторию форума Protey!

1586694391166.png

Продолжаем рассматривать атаки типа cache poisoning на практике, предыдущие статьи цикла можно найти тут:
Построение атаки отравления веб-кэша

Вообще говоря, создание базовой атаки отравления кеша в Интернете включает следующие шаги:
  • Identify and evaluate unkeyed inputs
  • Elicit a harmful response from the back-end server
  • Get the response cached
Выявление неключевых данных

Любая атака на отравление кеша в сети основывается на манипуляциях с неключевыми данными, такими как заголовки. Веб-кэши игнорируют неключевые входные данные при принятии решения о том, следует ли обслуживать кэшированный ответ пользователю. Это означает, что вы можете использовать неключевые входные данные, чтобы внедрить вашу полезную нагрузку и вызвать «отравленный» ответ, который, в случае кэширования, будет предоставлен всем пользователям, чьи запросы имеют соответствующий ключ кэша. Таким образом, первый шаг при создании атаки отравления веб-кэша заключается в определении неключевых входных данных, которые поддерживаются сервером.

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

Param Miner

К счастью, вы можете автоматизировать процесс определения неключевых входов, добавив расширение Param Miner в Burp из магазина BApp. Чтобы использовать Param Miner, вы просто щелкаете правой кнопкой мыши по запросу, который хотите исследовать, и нажимаете «Guess headers ». Затем Param Miner запускается в фоновом режиме, отправляя запросы, содержащие различные входные данные из его обширного встроенного списка заголовков. Если запрос, содержащий один из введенных им входных данных, влияет на ответ, Param Miner регистрирует его в Burp, либо на панели «Issues », если вы используете Burp Suite Professional, либо на вкладке «Output » расширения (« Extender ">" Extensions ">" Param Miner ">" Output "), если вы используете Burp Suite Community Edition.

Например, на следующем снимке экрана Param Miner нашел неключевой заголовок X-Forwarded-Host на главной странице сайта:

1586695137880.png

Внимание: при тестировании входных данных без ключа на действующем веб-сайте существует риск непреднамеренного использования кеш-памяти для обслуживания ваших сгенерированных ответов реальным пользователям. Следовательно, важно убедиться, что все ваши запросы имеют уникальный ключ кеша, чтобы они были переданы только вам.

Для этого вы можете вручную добавлять кэш-бустер (например, уникальный параметр) в строку запроса каждый раз, когда вы делаете запрос. В качестве альтернативы, если вы используете Param Miner, есть опции для автоматического добавления кеша к каждому запросу.

Выявление вредоносного ответа от внутреннего сервера

После того, как вы определили неключевой параметр ввода, следующим шагом будет точная оценка того, как веб-сайт обрабатывает его. Понимание этого имеет важное значение для успешного выявления вредного ответа. Если входные данные отражаются в ответе сервера без надлежащей очистки или используются для динамического создания других данных, то это потенциальная точка входа для отравления веб-кэша.

Получение кэшированного ответа

Управление входными данными для выявления вредоносного ответа - это полдела, но оно мало что дает, если вы не можете вызвать кеширование ответа, что иногда может быть сложно.

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

1586695493124.png

Использование уязвимостей, отравляющих кеш

Этот базовый процесс можно использовать для обнаружения и использования различных уязвимостей, связанных с отравлением веб-кэша. Например, вы можете использовать отравление веб-кэша для:
  • Провести XSS-атаку
  • Использование небезопасной обработки импорта ресурсов
  • Использование уязвимостей при обработке файлов cookie
  • Использование уязвимостей на основе DOM
Иногда информация, представленная в ответах, также может быть полезна для отравления веб-кэша. Например, содержимое заголовка Vary можно использовать для построения более целенаправленных атак . Аналогично, директивы управления кэшем также могут предоставлять информацию о поведении кэша.

Комбинируя несколько заголовков, вы также можете раскрыть дополнительные уровни уязвимости и даже объединить различные уязвимости, чтобы усилить воздействие атаки отравления веб-кэша.
 
Верх Низ