How find XSS with free Burp Suite

У цій статті розглянемо: "Як можна шукати XSS за допомогою безкоштовної версії Burp Suite". Багато хто думає, для пошуку XSS потрібна платна версія цього чудового інструменту, але я вам скажу, що є два способи як це можна зробити і в бомж версії))) Різниця лише в тому, звідки ми будемо брати список скриптів для вставлення у формочки, які ми будемо тестувати на безпеку...

TOOLS FOR FIND VULNERABILITY

Логин Свят

1/4/20232 min read

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

Цей плагінчик можна знайти в магазині програм Extender->BApp Store->XSS Validator->install Після встановлення, у вас з'явиться додаткова вкладка xssValidator.

Коли ми перейдемо в цю вкладку, ми побачимо багато різної інформації, але нам із цього потрібно лише розуміння:

- Payloads - це те, які скрипти будуть вантажитися у формочки, зазначено на малюнку цифрою 1

- Grep Phrase - це фраза за якою інструмент розумітиме, що з цим payload відпрацьовує XSS в даній формі, зазначено цифрою 2

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

Після того як ми прихопимо такий запит через Burp Suite, ми побачимо таку картину. вразливості...

Тепер відправимо цей запит у вкладку Intruder, за допомогою натисканням правої кнопки миші по даному реквесту, з'являється попап, в якому треба вибрати пункт Send to Intruder. Нас відправить у цю вкладку і там ми побачимо такі налаштування

У вкладці Target залишимо все як є зараз, але якщо у вас протокол https на сайті, то юзніть чекбокс Use https. Потім сміливо переходьте до вкладки Positions...

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

Коли скрипт викликає XSS відпрацьований на сайті, то в попапі Burp Suite буде відзначений чекбокс, як видно на картинці. Але хочу сказати, що всі автоматичні сканери тупі і потрібно ще самому руками доробляти роботу, тому не завжди сканер розуміє, що була знайдена XSS, щоб переконатися, перейдіть на сторінку де ви її шукали і подивіться, чи не відпрацьовує XSS, після сканера .

2) Варіант номер 2 (завантажити готовий список з набором XSS)

У цьому варіанті ми також будемо використовувати Burp Suite, але замість плагіна використовуватимемо заготовлений список скриптів з XSS. Спочатку скачаємо цей перелік, качати можна тут, або з інших місць, це як приклад. Може у вас згодом виробився свій список скриптів, з якими ви шукали XSS, можете його заюзати.

Після цього знову:

- налаштовуємо проксю між Burp та браузером

- робимо перехоплення запиту, тобто переходимо на форму, що тестується на XSS, а у нас вона складається з двох полів, відправляємо в ті поля як і раніше якусь белеберду, чекаємо щоб цей реквест відобразився в Burp Suite у вкладці Proxy->Intercept

- надсилаємо запит до вкладки Intruder.

І тут уже робимо так.

Як і минулого разу проводимо такі налаштування. Робимо чищення непотрібних для нас змінних, для цього натиснемо кнопку 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, тиснемо її та дивимося результати, перейшовши на сторінку в браузері, яку тестуємо.

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

В останній вкладці нам потрібно в блоці 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»