В этой статейке рассмотрим: "Как можно искать 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
И тут уже делаем так....
Когда мы перейдем в эту вкладку, мы увидим много различной информации, но нам из этого всего нужно лишь понимания:
- Payloads - это то какие скрипты будут грузиться в формочки, отмечено на рисунке цифрой 1
- Grep Phrase - это фраза по которой инструмент будет понимать, что с этим payload отрабатывает XSS в данной форме, отмечено цифрой 2
Во вкладке Target, оставим все как есть сейчас, но если у вас протокол https на сайте, то юзните чекбокс Use https. Затем смело переходите в вкладку Positions...
Как и прошлый раз проводим такие настройки. Делаем чистку ненужных для нас переменных, для этого нажмем кнопку Clear, которая уберет все переменные, затем выделим значение 1111111 и нажмем кнопку add, которая находится над кнопкой Clear. После этого выделим значение 2222222 и тоже нажмем кнопку add. Так как у нас будет проверятся одновременно несколько полей, нам надо заменить attack type с Sniper на Cluster bomb. После чего переходите во вкладку Payload...
Тут мы проделываем простые вещи. Как мы видим сейчас мы настраиваем первое поле, это видно с названия поля 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, жмем ее и смотрим результаты, перейдя на страницу в браузере, которую тестируем...