Решил ради интереса посветить день обзору сайтов банков.
Первый из таких стал официальный сайт Россельхос Банка (реклама дала о себе знать :) ), следующий Русский стандарт банк, далее Альфа-Банк.
Целью было не взломать или добиться вывода какой-либо секретной информации, а просто проверить на сколько хорошо сделаны официальные сайты банков.
Россельхос Банк
Сайт работает на CMS Bitrix
Ошибки.
Первое, что бросилось мне в глаза — модуль вывода новостей, ибо там есть параметры выбора года, месяца, дня и ещё кол-во новостей на одной странице.
Выбор даты.
В адресной строке, указав год 200 и месяц 20 я увидел, что не было сообщений об ошибке и более того — эти данные появились в селекте на странице, а значит входящие данные выводятся на странице.
Далее решил проверить возможность SQL инъекции — неудачно.
Следующим шагом была проверка на XSS — вот тут уже стало интересно.
Спец. символы не экранируются и html символы не преобразуются в html сущности, а значит можно внедрить любой код.
К сожалению (или к счастью банка) все попытки внедрить такие XSS как вызов алерта или iframe не удались, так как в первый тег вставлялся пробел.
Входящие данные:
20"></option></select><script>
На выходе:
20"></option></select><sc ript>
![[recovery mode] Банки. Ошибки и уязвимости [recovery mode] Банки. Ошибки и уязвимости](https://www.pvsm.ru/images/-recovery-mode-banki-oshibki-i-uyazvimosti.jpg)
Максимум, что можно сделать, это вставить картинку или ссылку (без вызова js кода).
![[recovery mode] Банки. Ошибки и уязвимости [recovery mode] Банки. Ошибки и уязвимости](https://www.pvsm.ru/images/-recovery-mode-banki-oshibki-i-uyazvimosti-2.jpg)
Ограничение кол-ва новостей.
Следующим шагом была проверка ограничения, на странице можно выбрать от 5 до 20 новостей.
Но как вы уже, наверно, понял — ограничение можно обойти.
Вы можете спокойно указать 100000 новостей, после чего на сайте появятся все новости.
Ссылки на новости.
На странице новостей также увидел, что у ссылок на новости странное окончание.
![[recovery mode] Банки. Ошибки и уязвимости [recovery mode] Банки. Ошибки и уязвимости](https://www.pvsm.ru/images/-recovery-mode-banki-oshibki-i-uyazvimosti-3.jpg)
Все попытки манипуляции с этой переменной провалились, хотя подозреваю, что если бы был включен Register_Globals, то можно было бы выполнить XSS.
Дальше решил перейти на страницу пресс-центра, там увидел подобную ошибку, но уже без переменной $page
Решил и на этой странице произвести манипуляции — удачно. При передачи переменной page через GET всё содержание переменной вывелось в ссылке, но двойная кавычка была преобразована.
![[recovery mode] Банки. Ошибки и уязвимости [recovery mode] Банки. Ошибки и уязвимости](https://www.pvsm.ru/images/-recovery-mode-banki-oshibki-i-uyazvimosti-5.jpg)
Ответ.
Ответ последовал через несколько часов, поблагодарили и поинтересовались откуда такая забота об их банке :)
Сами ошибки были исправлены, примерно, через 3-4 дня, кроме вывода всех новостей, видимо, не посчитали это ошибкой.
Русский стандарт банк
CMS сайта не узнавал.
XSS
Суть XSS уязвимость оказалась в том, что параметр из GET запроса передаётся в код страницы в нескольких местах, но самое главное — в js код.
В этом js коде определяется переменная requestUri (отвечает за адрес текущей страницы), но при передачи параметров нет экранирования одинарной кавычки, что позволяет нам выполнить произвольный js код.
![[recovery mode] Банки. Ошибки и уязвимости [recovery mode] Банки. Ошибки и уязвимости](https://www.pvsm.ru/images/-recovery-mode-banki-oshibki-i-uyazvimosti-6.jpg)
![[recovery mode] Банки. Ошибки и уязвимости [recovery mode] Банки. Ошибки и уязвимости](https://www.pvsm.ru/images/-recovery-mode-banki-oshibki-i-uyazvimosti-7.jpg)
Дальше не стал проверять сайт, ибо этого уже достаточно.
Ответ.
Русский стандарт решил не отвечать на моё сообщение, но дыру закрыли.
Альфа-Банк
Мельком посмотрел многострадальный Альфа-Банк, а именно поддомен идея.альфабанк — тоже нашёл XSS, единственное, что помешало успешно выполнить код это слеш, он воспринимается как разделитель, т.к. параметры передавался через GET (idea.alfabank.ru/accepted/page88
Автор: shapeshifter08
