Интересуюсь платёжными сервисами, банками, пластиковыми картами, да и вообще слежу за электронной коммерцией.
А ещё я люблю находить ошибки и уязвимости в системах интернет-банкингов, платёжных терминалов или в системах онлайн-переводов.
Не так давно один украинский сервис онлайн-оплаты — Plategka.com — запустил функцию: создание ссылки с уникальным адресом и QR-кодом для получения перевода на карту.
Как только я захотел проверить, как работает новый сервис, я увидел ту же ошибку, которую допустили Portmone: по ссылке указывается полный номер карты. Перебирая ссылки, можно собрать номера карт. "Изначально мы думали над сокрытием номера карты, но в этом вопросе есть свои за и против, поэтому на первом этапе, дабы у Плательщика была возможность убедиться в верности уже введенных данных, решили его оставить", — пишут они пользователю.
Но факт наличия полного номера карты усугубляется тем, что для удобства плательщика указывается фамилия и имя получателя.
Итого: можно собрать полные номера + ФИО владельцев карт (я указал просто первые буквы латинского алфавита).
Об этой оплошности я сразу сообщил в компанию, они исправили отображение полного номера карты достаточно быстро и даже отблагодарили меня суммой в… 200 гривен ($8,5). Что ж…
Через пару дней, найдя свободное время, я зашёл на сайт ещё раз.
А, так как первоначально при регистрации я указывал в полях «фамилия» и «имя» не совсем корректные данные, в этот раз решил посмотреть, возможно ли указать в этих полях два слова.
(телефонный номер не мой)
Два слова указать удалось.
Удалось указать и больше.
Получилось следующее:
А что, если добавить перенос строки < br >
— забыл я о том, что это платёжный сервис и такой код не должен выполняться.
Однако разработчики также забыли это учесть — система приняла и «правильно» отобразила и перенос строки, и изменение цвета шрифта:
С такой формой мошенники могут долго собирать деньги с доверчивых пользователей. Особенно если задать психологически правильный текст.
Кстати, сервис даёт возможность «забронировать» адрес ссылки. Естественно, я попробовал и создал ссылки вида
https://www.plategka.com/gateway/pay2me/
admin/
https://www.plategka.com/gateway/pay2me/
login/
https://www.plategka.com/gateway/pay2me/
test/
и другие.
Ну и я не мог не попробовать вставить <script>alert()</script>
в какое-либо поле.
И, к сожалению сервиса и моему счастью, код выполнился:
Мда, HTML-кодом дело не ограничилось, тут же и XSS.
Сообщение в компанию я отправил, указав, что эти ошибки серьёзнее, чем предыдущие. Меня поблагодарили и я получил вознаграждение.
Вознаграждение, внимание, в размере… снова 200 (!) гривен!
Понимаю, что не во всех компаниях допускаются выплаты за найденные уязвимости, но
восемь с половиной долларов за XSS? 🙂
ссылка на оригинал статьи http://habrahabr.ru/post/269663/
Добавить комментарий