Как я нашёл уязвимость в QIWI и заработал $200

?v=1

Когда-то давно я мечтал стать специалистом по информационной безопасности и усердно ковырял разные веб-сайты на предмет уязвимостей. Моей самой большой победой стало нахождение уязвимости в платёжной системе QIWI, за которую добрые разработчики отсыпали мне 200 долларов. В итоге обнаруженная проблема была решена лишь спустя 3.5 года после жалобы, и после этого о ней стало можно поведать Вселенной. Забавный момент заключается в том, что я обнаружил эту уязвимость совершенно случайно, и на моём месте запросто мог быть ты.

В далёком 2015-м я пользовался виртуальными дебетовыми картами QIWI для того, чтобы заказывать своей младшей сестрюне ништяки с AliExpress. Система была простой: у тебя на счету в QIWI есть какая-то сумма денег, ты клацаешь на кнопку «Выпустить виртуальную карту» и получаешь информацию для платежей в интернете. Получаешь хитрым образом: что-то видно в веб-интерфейсе (первые и последние 4 цифры из номера карты, срок действия), но самое интересное приходит тебе по СМС (8 средних цифр номера карты, CVV2). Однажды что-то пошло не так: в веб-интерфейсе по-прежнему отображались первые и последние 4 цифры из номера карты, в СМС вдруг стали приходить они же. Остальные 8 цифр, видимо, нужно было выяснить телепатически.

Я человек простой: вижу проблему — жалуюсь в техподдержку. Весьма оперативно мне пришёл ответ: «Это ошибка временного характера, специалисты занимаются решением данной ситуации. Приносим извинения за доставленные неудобства.» Окееей!

Через пару дней всё заработало, но не так, как раньше. В СМС по-прежнему приходили первые и последние 4 цифры из номера карты, а на сайте теперь отображались средние 8 цифр.

Wait a minute, а вдруг тут есть проблема безопасности, подумал я? Как и любой человек из большого города, я в своей жизни видел разного рода чеки. На них обычно указываются последние 4 цифры из номера карты, а значит, эти данные секретом не являются. Ещё они часто видны на сайтах, где ты вводишь и сохраняешь данные своей карты. Пару раз я видел кассовые чеки, где были указаны также первые 4 цифры. Посмотрев на банковские карты своей семьи, я обнаружил у них один и тот же префикс. Тоже так себе секретик, значит. Итак, раньше по СМС приходили секретные данные, на сайте отображались публичные, а теперь всё стало наоборот!

Я сел за компьютер и написал обстоятельный баг-репорт в программу по поиску уязвимостей, попутно нагуглив всякие интересности про номера банковских карт. Моя главная мысль звучала так: «Всё было хорошо, а стало плохо». Через 9 месяцев мне дали за это денег, а ещё через 2.5 года починили ошибку и разрешили раскрытие истории. Что ж поделаешь, иногда нужно уметь ждать! На следующей итерации QIWI применили иную концепцию, которая кажется мне более удобной и безопасной: чтобы посмотреть все реквизиты на сайте, нужно ввести на нём код подтверждения из СМС.

Заметить и пожаловаться на этот баг мог кто угодно, в том числе ты, дорогой друг. Как видишь, тут не требовалось никаких специфических знаний по информационной безопасности и даже специального поиска проблемы, всё произошло практически само собой.

Будьте котиками, жалуйтесь разработчикам на уязвимости и баги, и всё у всех будет хорошо!

Оригинал опубликован в моём блоге 23.03.19.

© Habrahabr.ru