ПЕНТЕСТИНГ Уязвимости платежных систем и магазинов


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 082
Репутация
8 199
2dda60365f467dec8e869a8da1b48d46.jpg


Автор: w9w@

Недавно решил проверить на уязвимости сайты платежных систем (ua,ru). Нашёл топ такого рода сервисов, на множестве из которых были обнаружены xss, csrf и другие популярные уязвимости. Были компании, которые оперативно устраняли уязвимости, благодарили и договаривались о сотрудничестве, были, которые молча фиксили, и самый неприятный момент — компании, которые не верили в опасность проблемы, я пытался доказать им обратное, что дело обстоит серьезно, предлагал показать уязвимость на их тестовом аккаунте, говорили, что исправят, но до сих пор и не исправили

Есть одна платежная система, на которой присутствовала уязвимость, позволяющая получить критически важную информацию о пользователе, его пароле, кредитной карте и тд. Баг очень легко воспроизводился, правда вывод средств со взломанных аккаунтов был затруднен по нескольких причинам, расскажу о них под катом.

Сайт компании , это 7900 alexarank в Украине. Я обычно не трачу много времени на каждый сайт, потому что ещё не известно, как относится к уязвимостям на своём сайте владелец, возможно он проигнорирует уязвимость и моё время будет потрачено зря. Если нашёл первую стоящую уязвимость на сайте, то я её сразу репорчу, смотрю на реакцию владельца, и если он положительно относится к такого рода мероприятиям и хочет чтобы я сотрудничал с ним дальше, то продолжаю свои поиски.

Первое, что я сделал — это проверил поддомены и директории по моему словарю, поддомены были выявлены следующие
mail.plategka.com
test.plategka.com
, в целом брут ничего не дал.

Далее была просмотрена выдача по google доркам, увы, поиск не увенчался успехом, и единственное что было найдено — статья на Хабре о том, как он нашёл уязвимость на plategka , и о том как ему заплатили очень много денег — всего $8 :)

Следующим шагом было решено протестить функционал личного кабинета, csrf баги не удалось воспроизвести из-за подтверждения паролем для изменения данных, также стояли фильтры на xss.
Единственное, что было обнаружено – это self xss в подтверждении формы паролем, опасность такой баги минимальна, поэтому нужно было искать что-то другое и более серьезное.


Одна вещь, на которую я обратил внимание — это сервис . Его работа заключается в обработке данных о кредитных картах, я посчитал это интересным предметом для изучения.
Раньше натыкался на новости с этим сервисом , но не обращал на них особого внимания. Инструкция к созданию:

В личном кабинете есть соответствующая вкладка — «Настройки Pay2me». Для создания уникальной ссылки необходимо ввести ее название, 16-значный номер карты и нажать клавишу «Добавить».

Я создал свою ссылку

eeea9b2ed2bc4c0ba37d31d5c3f2e292.png


Данные о карте были скрыты, xss уязвимости отсутствовали. Внимание привлек ответ бурпа. В исходном коде страницы с оплатой в javascript выдавался логин юзера, md5 хэш его пароля, ФИО, email и номер телефона:
Код:
{"user_id":"dd660731660eb4bba1f62e44e7″,"user_role_id":null,"org_id":null,"merchant_id":null,"partner_id":null,"login":"berest****","passwd":"f1957496d2f5c7cb3caa73c2e*******","first_name":"\u0418\u043b\u044c\u044f","second_name":"\u0418\u0433\u043e\u0440\u0435\u0432\u0438\u0447″,"last_name":"\u0412\u044f\u0437\u043c\u0435\u043d\u0442\u0438\u043d\u043e\u0432″,"email":"berest****@ya.ru","phone":"+38097360″,"key_private":"inNFD\/aJyC2\/KWsuQ9vAs9FGg6\/\/4YnGjQuHUX7tu0i5GMY7weB3EddH815ytvkaUfS8F0KuxWMgAzDBAKv+Rv6Uzqgtn6qMaHH8N6v5KFWFeeRncGQ6XPQwo4kboNJIf8jidlFj\/Xi8+5BqRM\/cUfDt+P3ODaql5dImLehS36jzBwsQq6NjKZFYVkwhZ1mKbcu4H832JA32mHaHmTLlb\/HAocxg6ws1EDKRyJoNL3S8P","key_public":"/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+6MXVFgAmowKck8C+Bqoofy6+A2Qx6lREFBM8ENpCZGo6QAkjv2uYcw+JwXzBglqyomyBGp6kCR3G4KwWuFNQG+dNGA+uRC3wCvbHyPPRZKpuNIwM3AFGXdWWs3yZok32NbMkFRRcFa3raJ1QFlk1usJ6D3tnGiSrPL4NM+kB\/S6ezQHZzepScfD","secret":"d7ceeb0a873ad2d29de12c45b******","secret_key":null,"date_created":"2017-05-11″}
(это данные, взятые из url ).

f2f6943cc12f4617a013dc047c69d0d5.png


Уязвимость найдена, но одной моей ссылки для доказательства будет маловато, было принято решение о нахождении других подобных ссылок.
Были попытки их нахождения с помощью дорков вида site:plategka.com inurl:pay2me/, выдало только одну ссылку . Я знал, что ссылок должно быть намного больше, потому что сервис пользуется хорошей популярностью.
Последним шансом получить заветные ссылки стал брутфорс в интрудере, было загружено более 100 000 популярных английских слов и начат перебор.

868fd0725e9c4d878ea58139b0ce1eef.png


Получилось найти около 40 ссылок, примерно половину паролей удалось узнать

0a1b26c6c11845759c2ec2594a7e379a.png

Я зашёл на пару аккаунтов проверить, шифруются ли cvv2 и др данные карты.
На первом аккаунте обнаружил 3 действительных карты

bd1066c92570429fbab0db223801fdc9.png


На втором было 20

3107d889976d489e8797900c8a9b9448.png


cvv в аккаунте скрыт, раскрывается информация только о 10 цифрах номера карты и срок её действия. Чтобы обналичить карты, можно, например, пополнить webmoney, или другой электронный кошелёк. Но для того, чтобы это сделать, придется ввести cvv2 код в подтверждении платежа, даже если карта была верифицирована.

Первое, что мы можем сделать – это ввести рандомный cvv2 код, например 111. Часто нас редиректит на ввод otp от банка, и тогда платёж не проходит из-за неверного cvv2.

849d2d1dead0487aa58fa3fa0c2a13de.png


Также можем забрутить cvv2, но потом опять можно столкнутся с вводом кода из банка, который тяжело обойти.

Если у нас будет дата и частичный номер карты, то обычная фишинг атака может заставить юзера рассказать о номере своей карты (мы получили email, номер телефона, ФИО, я даже смог получить несколько ссылок на страницы пользователей в соцсетях), даже обычное письмо вида: "Вы выиграли денежный приз, для его получения Вам необходимо прислать нам номер Вашей карты" может сработать, действие не требует предоставления критических конфиденциальных данных.

Чтобы подобрать cvv2, можно использовать какой-то онлайн магазин, всего 1000 запросов и мы подобрали код (вот статья об этом ). Конечно, некоторые магазины делают редирект на ввод otp от банка, но многие "забугорные" магазины сразу списывают деньги без необходимости редиректа.

Уязвимость была зарепорчена почти сразу после брутфорса, в комплекте к данным по уязвимости прислал и базу пользователей, которые были оперативно заморожены, а сам баг был быстро устранен.

За уязвимость заплатили всего $100, сказали, что для того чтобы получить больше, я должен узнать все данные кредитной карты из аккаунта.

Хронология:

13.07 в 17:00 — отправлен репорт.
13.07 — уязвимость исправлена.
20.07 — выплачена награда $100.
24.07 — статья была согласована с тех поддержкой plategka.com.

Вывод из статьи: Не смотря на заявленное прохождение PCI DSS, я бы рекомендовал сайтам периодически проверять уязвимости, а клиентам — заводить виртуальные карты для использования в Интернет.

Оригинал:
 
Автор темы Похожие темы Форум Ответы Дата
Антоха ПЕНТЕСТИНГ (Паблик) 3
Верх Низ