Инструменты для определения WAF

Определить WAF

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

Еще по теме: Обход WAF с помощью SQLmap и Tor

Что такое WAF

WAF — аббревиатура от Web Application Firewall (брандмауэр веб-приложений) — это инструмент для фильтрации и блокировки вредоносного трафика.

Основные функции WAF:

  • Защита веб-приложений от атак, таких как инъекции SQL, XSS, сканирование уязвимостей, DoS-атаки и пр.
  • Фильтрация вредоносного трафика на основе правил. WAF может блокировать запросы, содержащие опасный код или признаки атак.
  • Мониторинг и логирование веб-трафика. Позволяет анализировать активность пользователей и выявлять аномалии.
  • Выступает в роли реверсного прокси перед веб-приложениями.
  • Может интегрироваться с CDN, балансировщиками нагрузки и другими компонентами инфраструктуры.

WAF дополняет защиту веб-приложений на уровне сети, фильтруя и блокируя опасный трафик.

Определение WAF вручную

WAF часто блокируют явно вредоносный трафик. Чтобы спровоцировать брандмауэр и проверить его наличие, можно отправить HTTP-запрос на веб-приложение со вредоносным параметром:

Ответ HTTP может отличаться от ожидаемого для посещаемой веб-страницы. WAF может вернуть свою собственную страницу, как показано ниже, или другой код состояния, обычно в 400-ом диапазоне.

Можно обнаружить дополнительные признаки брандмауэра через веб-прокси, cURL или вкладку «Сеть» в инструментах разработчика браузера:

  • Название WAF в заголовке Server (например, Server: cloudflare)
  • Дополнительные заголовки HTTP-ответа, связанные с WAF (например, CF-RAY: xxxxxxxxxxx)
  • Куки, которые, похоже, устанавливаются WAF (например, заголовок Set-Cookie: __cfduid=xxxxx)
  • Уникальный код ответа при отправке вредоносных запросов (например, 412)

Помимо создания вредоносных запросов и анализа ответов, брандмауэры также можно обнаружить и определить, отправив TCP-пакет FIN/RST на сервер или используя побочный канал атаки. Например, время реакции брандмауэра на разные нагрузки может дать подсказки о используемом WAF.

Инструменты для определения WAF

Вот несколько инструментов для определения и обхода WAF:

  • Nmap
  • Wafw00f
  • WhatWaf
  • WAFNinja

Использование Nmap для определения WAF

Nmap Scripting Engine (NSE) включает сценарии для обнаружения брандмауэров.

Nmap для определения WAF

Еще по теме: Использование Nmap NSE для поиска уязвимостей

Использование Wafw00f для определения типа WAF

WafW00f — полезный скрипт Python, способный определить тип брандмауэр веб-приложений (WAF). Wafw00f отправляет популярные полезные нагрузки на заданное доменное имя и оценивает реакцию веб-сервера.

Wafw00f определение типа WAF

Подробнее см. в статье «Использование WafW00f для определения типа WAF».

Определение WAF с помощью WhatWaf

WhatWaf кроме определения WAF, используя скрипты несанкционированного доступа и оценивая реакцию веб-сервера на различные полезные нагрузки, пытается найти способы обхода WAFобход, .

Определение WAF с помощью WhatWaf

Официальный репозиторий на GitHub.

Oбход WAF с помощью WAFNinja

WAFNinja — это инструмент на Python, который помогает обходить WAF, автоматизируя шаги, необходимые для обхода проверки ввода. WAFNinja имеет множество полезных нагрузок и строк для фаззинга, хранящихся в локальном файле базы данных.

WAFNinja поддерживает HTTP-соединения, запросы GET и POST, а также использование куки для доступа к страницам, ограниченным аутентификацией. Также можно настроить перехватывающий прокси-сервер.

Официальный репозиторий на GitHub.

Заключение

Помимо этих инструментов, важно также иметь глубокое понимание того, как работает конкретный WAF, с которым вы будете иметь дело, и какие виды фильтрации и обнаружения он использует. Это позволит вам создавать более эффективные методики обхода.

Если вам, известны другие инструменты для определения и обхода WAF, то опишите их в комментариях.

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер: компьютерный ниндзя и мастер цифровых тайн.

Добавить комментарий