К профилю facebook
К профилю linkedin
How find XSS with free Burp Suite
Вернуться назад

В этой статейке рассмотрим: "Как можно искать XSS с помощью бесплатной версии Burp Suite". Многие думают, для поиска XSS нужна платная версия этого замечательного инструмента, но я вам скажу, что есть два способа как это можно сделать и в бомж версии))) Разница лишь в том, откуда мы будем брать список скриптов для вставления в формочки, которые мы будем тестить на безопасность...

Теперь отправим этот запрос во вкладку Intruder, с помощью кликом правой кнопки мыши по данному реквесту, появляется попап, в котором надо выбрать пункт Send to Intruder. Нас отправит в эту вкладку и там мы увидим такие настройки

1) Вариант номер 1 (Плагин xssValidator)

Этот плагинчик можно найти в магазине приложений Extender->BApp Store->XSS Validator->install

После установки, у вас появится дополнительная вкладка xssValidator...

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

После того как мы прихватим такой запрос через Burp Suite, мы увидим такую картину.... Во вкладке Proxy->Intercept->Raw, мы видим какой реквест будет отправлятся на наш сайт, теперь его осталось немного доделать, чтоб искать с помощью его уязвимости...

Тут мы видим подсвеченные зеленым строки - это переменные в которые будут поступать данные, которые мы будем задавать. Так как мы собрались искать XSS только в двух полях, то давайте оставим только эти переменные. Для этого нажмем кнопку Clear, которая уберет все переменные, затем выделим значение 1111111 и нажмем кнопку add, которая находится над кнопкой Clear. После этого выделим значение 2222222 и тоже нажмем кнопку add. Так как у нас будет проверятся одновременно несколько полей, нам надо заменить attack type с Sniper на Cluster bomb. После чего переходите во вкладку Payload...

В последней вкладке нам нужно в блоке Grep - Match все очистить с помощью кнопки Clear, а затем добавить значение, которое мы скопировали с вкладки нашего плагина, если вы помните, если нет, вернитесь во вкладку нашего плагина xssValidator, найдите поле Grep Phrase, скопируйте то значение и вставьте его во вкладку Options поле Grep - Match, которая находится во вкладке Intruder. А затем кликнете на кнопку add. Это нужно чтоб наш инструмент понимал, если XSS отработал, он будет видеть эту фразу, и соответственно будет высвечиваться чекнутый чекбокс. Все, мы выполнили настройку нашего кейса, затем на вкладке payload есть кнопка start attack, жмем ее и смотрим результаты

Как защитится:

 

- Использование фреймворков, которые автоматически убирают возможность эксплуатации XSS

 

- Ознакомиться с  Cheat Sheet OSSASP «Профилактика XSS»

 

- Ознакомиться с  OATSP Cheat Sheet «DOM based XSS Prevention»

Тут мы проделываем простые вещи. Как мы видим сейчас мы настраиваем первое поле, это видно с названия поля Payload set, у которого в выпадающем списке стоит 1. В этом списке будет отображаться столько цифр, сколько переменных вы задали на вкладке Positions. Далее в Payload type выбираем значение Extension-generated. Далее я выделил цифрой 3 кнопку Select generator, которую надо нажать и в попапе выбрать название нашего плагинчика, который мы записали, затем жмем кнопку ОК. Переходим в последнюю вкладку Options...

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

 

2) Вариант номер 2 (скачать готовый хорошенький список с набором XSS)

 

В этом варианте мы тоже будем использовать Burp Suite, но вместо плагина будем использовать заготовленный список скриптов с XSS. Для начала скачаем этот список, качать можно тут, либо с других мест, это как пример. Может у вас со временем выработался свой список скриптов, с которыми вы искали XSS, можете и его заюзать.

 

После это опять:

- настраиваем проксю между Burp и браузером

- делаем перехват запроса, то есть переходим на тестируемую форму на XSS, а у нас она состоит из двух полей, отправляем в те поля как и ранее какуе-то белеберду, ждем чтоб этот реквест отобразился в Burp Suite во вкладке Proxy->Intercept

- отправляем запрос в вкладку Intruder

 

И тут уже делаем так.... 

gallery/600_472811015
gallery/выделение_139
gallery/выделение_142

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

- Payloads - это то какие скрипты будут грузиться в формочки, отмечено на рисунке цифрой 1

- Grep Phrase - это фраза по которой инструмент будет понимать, что с этим payload отрабатывает XSS в данной форме, отмечено цифрой 2

gallery/выделение_143
gallery/выделение_144
gallery/выделение_148
gallery/выделение_149

Во вкладке Target, оставим все как есть сейчас, но если у вас протокол https на сайте, то юзните чекбокс Use https. Затем смело переходите в вкладку Positions...

gallery/выделение_150
gallery/выделение_151
gallery/выделение_152
gallery/выделение_153
gallery/выделение_150

Как и прошлый раз проводим такие настройки. Делаем чистку ненужных для нас переменных, для этого нажмем кнопку Clear, которая уберет все переменные, затем выделим значение 1111111 и нажмем кнопку add, которая находится над кнопкой Clear. После этого выделим значение 2222222 и тоже нажмем кнопку add. Так как у нас будет проверятся одновременно несколько полей, нам надо заменить attack type с Sniper на Cluster bomb. После чего переходите во вкладку Payload...

gallery/выделение_154

Тут мы проделываем простые вещи. Как мы видим сейчас мы настраиваем первое поле, это видно с названия поля Payload set, у которого в выпадающем списке стоит 1. В этот раз в Payload type выбираем значение не Extension-generated, а Runtime file. Далее я выделил цифрой 4 кнопку Select file, которую надо нажать и в попапе выбрать название нашего скачанного списка с скриптами XSS, который мы склонили на наш комп с гита, затем жмем кнопку Open. Тоже самое проделываем и для второй переменной. В этот раз вкладку Options можем не настраивать, так как у нас разнообразные значения в скриптах XSS, трудно будет перечислить все, ну разве что вы сами не подредачите эти скрипты и не пропишите в каждый вывод одной и той же фразы, то тогда в вкладке Options, в блоке Grep-Match, прописать вывод фразы, на которую стоит Burp Suite обращать внимание, в случае отработки XSS на тестируемой странице.

 

Все, мы выполнили настройку нашего кейса, затем на вкладке payload есть кнопка start attack, жмем ее и смотрим результаты, перейдя на страницу в браузере, которую тестируем...

gallery/выделение_155

Хотите узнать больше о различных уязвимостях и инструментах для поиски этих же уязвимостей, чтоб сделать ваш проект безопасным, для ваших пользователей? 

Мы организовываем тренинги по OWASP TOP 10. 

Буду рад вас видеть на тренинге!

 

Программа тут