Интересуюсь платёжными сервисами, банками, пластиковыми картами, да и вообще слежу за электронной коммерцией. А ещё я люблю находить ошибки и уязвимости в системах интернет-банкингов, платёжных терминалов или в системах онлайн-переводов.
Не так давно один украинский сервис онлайн-оплаты — Plategka.com — запустил функцию: создание ссылки с уникальным адресом и QR-кодом для получения перевода на карту.
Как только я захотел проверить, как работает новый сервис, я увидел ту же ошибку, которую допустили Portmone: по ссылке указывается полный номер карты. Перебирая ссылки, можно собрать номера карт. "Изначально мы думали над сокрытием номера карты, но в этом вопросе есть свои за и против, поэтому на первом этапе, дабы у Плательщика была возможность убедиться в верности уже введенных данных, решили его оставить", — пишут они пользователю.
Но факт наличия полного номера карты усугубляется тем, что для удобства плательщика указывается фамилия и имя получателя.
Итого: можно собрать полные номера + ФИО владельцев карт (я указал просто первые буквы латинского алфавита).
Об этой оплошности я сразу сообщил в компанию, они исправили отображение полного номера карты достаточно быстро и даже отблагодарили меня суммой в… 200 гривен ($8,5). Что ж…
Через пару дней, найдя свободное время, я зашёл на сайт ещё раз. А, так как первоначально при регистрации я указывал в полях «фамилия» и «имя» не совсем корректные данные, в этот раз решил посмотреть, возможно ли указать в этих полях два слова.
(телефонный номер не мой)
Два слова указать удалось.
Удалось указать и больше.
Получилось следующее:
А что, если добавить перенос строки
Однако разработчики также забыли это учесть — система приняла и «правильно» отобразила и перенос строки, и изменение цвета шрифта:
С такой формой мошенники могут долго собирать деньги с доверчивых пользователей. Особенно если задать психологически правильный текст. Кстати, сервис даёт возможность «забронировать» адрес ссылки. Естественно, я попробовал и создал ссылки вида:
и другие.
Ну и я не мог не попробовать вставить
И, к сожалению сервиса и моему счастью, код выполнился:
Мда, HTML-кодом дело не ограничилось, тут же и XSS.
Сообщение в компанию я отправил, указав, что эти ошибки серьёзнее, чем предыдущие. Меня поблагодарили и я получил вознаграждение. Вознаграждение, внимание, в размере… снова 200 (!) гривен!
Понимаю, что не во всех компаниях допускаются выплаты за найденные уязвимости, но
восемь с половиной долларов за XSS?
Не так давно один украинский сервис онлайн-оплаты — 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?
Wedmer
Им повезло, что вы не такой как хакер из известного анекдота про солонки.
MaximChistov
На случай, если кто-то не читал :)
greabock
Ну что тут скажешь? Школьники с fl.ru сдали проект в срок
pewpew
А что вы хотели от компании с гордым названием «Платегка»?
samodum
А в белорусских рублях это было бы 150000!
alexpp
Так что в итоге ваших обращений — они пофиксили уязвимость?
Carcharodon
Странно, что так мало заплатили. За утечку данных о держателях карт штрафы и выплаты намного выше :)
Snowly
Judgin
Интересно, Валентину Аверину из компании SYSNET Global Solutions не стыдно за проведенный PCI DSS?
Milfgard
Вот так Judgin восемь лет на Хабре молчал-молчал, молчал-молчал, а потом пришёл и первым же комментарием сломал человеку карьеру. Headshot!
Judgin
Да, я злой, терпеливый и молчаливый бот. До встречи через 8 лет=)
o_jah
Стыдно должно быть тем, кто делал тест на проникновение в рамках PCI DSS и отчет писал.
ComodoHacker
За то, чтобы вы успокоились, не писали статью и не проверяли потом статус.
Вероятно это работает, раз так делают. А они зато могут ставить этим багам низкий приоритет.
gospodinmir
Сумма конечно невелика, но ведь с тем же успехом — денег могли вообще не заплатить. Вы же занимаетесь этим на добровольных началах, соответственно такой исход не должен удивлять, разве нет?
foxin
Как уже написали выше, штрафы за такое — достаточно велики. И имхо нормально — это заплатить нормальную сумму (фактически за молчание) либо сразу предложить контракт на проведение аудита. Потому что сейчас автор может анонимно выложить в паблик слитую инфу по картам-именам и подать жалобу на сервис за слитую инфу.