20 лет проблем приема платежей tl;DR


Download 2.46 Mb.
Pdf ko'rish
bet3/8
Sana07.10.2023
Hajmi2.46 Mb.
#1694515
TuriОбзор
1   2   3   4   5   6   7   8
Bog'liq
20 лет проблем приема платежей

1e1 или 0xFF, а сравнение подобных чисел, еще и на старых версиях PHP, 
еще и с учетом нюансов сравнения в языке PHP, приводило к самым 
неожиданным последствиям.
5. Не совсем проблема платежной системы, НО, как насчет race condition и 
одинаковых внутренних идентификаторов платежей на ресурсе продавца? 
Привет, мультипликация баланса.
6. ...
Подпись запросов
Как это работало:
1. При оплате через WebMoney, пользователя, в соответствии со спецификацией 
платежной системы, перенаправляло на сайт WebMoney, где он мог видеть 
сумму платежа, номер счета и прочие параметры.


20 лет проблем приема платежей
8
2. После нажатии кнопки “Далее” и аутентификации в системе становилась 
доступна информация об URL, который отвечал за обработку результата 
платежа (Result URL).
3. Пользователь мог сформировать запрос к целевому URL, который, в 
соответствии со спецификацией WebMoney (ну почти), информировал 
платежную систему о том, что платеж успешно проведен.
4. Profit!
Система приема платежей Global Collect успешно споткнулась о несколько 
проблем, которые упоминались выше:
Известный единый обработчик результатов платежа
Отсутствие проверки подписи (да и отсутствие подписи в запросе как таковой)
Использование данных, передаваемых через браузер пользователя, в 
качестве (хотя, согласно спецификации WebMoney, это можно было делать 
через коллбэк, приходящий от серверов WebMoney)
Все это привело к возможности совершать фиктивные транзакции и покупать все, 
что использовало процессинг Global Collect, без ограничений. 
Проблему устранили только через ~2 недели массовой эксплуатации.


20 лет проблем приема платежей
9
Другой вариант похожей проблемы, но чуть сложнее, был не так давно в 
Smart2Pay.
Еще одна проблема, связанная с подписью запросов - Length Extension Attack.
Или атака удлинением сообщения. Согласно Wikipedia - это тип атаки на хеш-
функцию, заключающейся в добавлении новой информации в конец исходного 
сообщения. При этом новое значение хэша может быть вычислено, даже если 
содержимое исходного сообщения остаётся неизвестным. Чуть подробнее можно 
изучить здесь. 
Проблема встречалась всего пару раз, когда разработчики решили реализовать 
свою “классную” подпись запросов в стиле VK (которые в общем-то тоже не сами 
придумали алгоритм), но получилось как обычно.
Ниже небольшая иллюстрация на тему как допустимо генерировать подпись в 
таком вот стиле и как “выстрелить себе в ногу”.


20 лет проблем приема платежей
10
Для эксплуатации же можно воспользоваться одним из следующих инструментов:
https://github.com/bwall/HashPump
https://github.com/iagox86/hash_extender

Download 2.46 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling