Обход WAF короткой полезной нагрузкой XSS

Взлом сайта

Сегодня рассмотрим способы создания короткой полезной нагрузки Cross-Site Scripting (XSS) для обхода WAF (Файрвол веб-приложений). Преимущество короткой полезной нагрузки XSS в том, что ее можно вводить в поля с ограничением количества символов.

Еще по теме: Обзор лучших сканеров уязвимостей

Итак, у нас есть целевой сайт, на котором в поле поиска мы пробуем выполнить нашу полезную нагрузку (пейлоад) XSS:

XSS-атака в поле поиска сайта

В ответ получаем следующее:

XSS заблокирован WAF

В доступе отказано! Похоже, какой-то WAF (брандмауэр веб-приложений) блокирует пейлоад.

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

HackBar — это расширение Firefox для эксплуатации различных уязвимостей, таких как SQLI, XSS, LFI. Помимо этого расширение имеет другой функционал, среди которого шифрование и дешифрование полезной нагрузки.

Итак, вставляем полезную нагрузку в HackBar и жмем «Encode». На выходе получаем зашифрованную полезную нагрузку.

Итак, давайте протестируем закодированную полезную нагрузку на целевом сайте.

XSS-кодирование с помощью hackbar
XSS-шифрование с помощью HackBar

Полезная нагрузка XSS с hackbar
Полезная нагрузка XSS с HackBar

Как видите, мы успешно выполнили код java-скрипта, т.е. успешно провели XSS-атаку на веб-сайт.

Но современные веб-приложения часто использует строгую проверку, такую ​​как ограничение на ввод данных пользователем. Что делать, если форма поиска не позволяет ввести более 35 или еще хуже 25 символов?

Попробуем сократить наш длинный  (75 символов) пейлоад.

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

Обход WAF для XSS
Обход WAF для XSS

Итак, давайте попробуем найти, какие символы блокируются WAF, попробовав разные варианты полезной нагрузки.

На самом деле мы также можем использовать alert() вместо alert(1) или alert(XSS). alert() поможет сохранить один символ, и мы все же сможем выполнить внедренный код.

Итак, вот наша окончательная полезная нагрузка с 31 символом:

Как вы знаете, JavaScript не ограничивается тегом script. Давайте попробуем создать полезные нагрузки с разными тегами и обработчиками событий.

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

В приведенной выше полезной нагрузке, мы пытаемся вставить изображение SVG на наш сайт. Если он успешно загрузится на сайт, появится окно предупреждение отображаемое событием onload. Давайте закодируем и это.

Пробовал разные варианты полезной нагрузки, выяснял, что нужно кодировать и вот что у меня получилось:

Таким образом, мы сократили нашу полезную нагрузку до 24 символов!

Можем ли мы сделать ее еще короче? Да, можно использовать следующий тег:

Без кодировки это выглядит так

Если вы введете эту полезную нагрузку, ничего не произойдет

Обход WAF самой короткой полезной нагрузкой XSS

Но как только вы попытаетесь вырезать текст со страницы.

Атака XSS с событием oncut
Атака XSS с событием oncut

При запуске события oncut будет выполнена полезная нагрузка XSS.

Короткая полезная нагрузка XSS для обхода WAF

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

Если сможем встроить тег <iframe> при попытке межсайтового скриптинга, то сможем использовать следующую короткую полезную нагрузку:

XSS с использованием 14.rs
XSS с использованием 14.rs

Вышеуказанная полезная нагрузка пытается загрузить сайт 14.rs внутри тега iframe, и в случае успеха код javascript из http://14.rs выполнится на целевом сайте. http://14.rs — это специальный веб-сайт для эксплуатации XSS.

Можно автоматизировать этот процесс и найти интересные XSS-уязвимости с помощью инструмента Dalfox. Но об этом поговорим в другой статье.

РЕКОМЕНДУЕМ:

QUASAR

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

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