Рубрики
Uncategorized

Как не защищать системы веб-платежей

Поскольку сказка, заложенная здесь реальна, я воздерживаюсь от использования конкретных имен или местоположений. Это может поставить … Теги с безопасностью, DevOps, WebDev, программированием.

Поскольку сказка, заложенная здесь реальна, я воздерживаюсь от использования конкретных имен или местоположений. Это может поставить меня в некоторые неловкие ситуации. Если вы проходили через что-то подобное, это может звучать знакомым. То, что сказал, что идентификационные детали мало что делать с самой историей. Это не новый или сложный взлом. Это лень разработчиков в лучшем случае. Предполагая, что пользователи все не технические овцы. По большей части они правы, но один жадный непослушный пользователь может изменить изображение.

Отказ от ответственности:

  • Я на самом деле не использовал то, что получил, и сообщил об ошибке
  • Я не предлагаю, чтобы люди пытались забить бесплатные услуги благодаря эксплуатациям паршивых систем. Это предназначено для обеспечения безопасности тех которые выставлены
  • Моя надежда заключается в том, что разработчики становятся более бдительными с системами, особенно те, которые привлекают личную и медицинскую информацию буквально каждого, которые пересекают границу своей страны
  • Однако я думаю, что тестирование, дома для таких ошибок Содействие большему добру Интернета.

Я много путешествовал. Больше так во время COVID, чем «нормальные» времена, чтобы получить вакцину, медицинские осмотры и другие личные обязательства. Путешествие стало этим огромным платежным бременем раздражением, где вы должны платить за тесты перед посадкой и сразу после посадки. О, и снова и снова, когда путешествуете назад. В то время как у меня нет критики о необходимости теста (и я не получил профессиональный фон, чтобы прокомментировать его), куча тестов, которые я должен предпринять, и заплатить за то, что начнут чувствовать себя как налог. Негативный финансовый стимул не путешествовать, если вы будете.

В течение последнего года я путешествовал в свою домашнюю страну и должен был взять Бесплатно ПЦР тест прямо в аэропорту. Планирование назначения в онлайн-выделенной системе, используя тот же код скидки каждый раз: Free1 Отказ

Пару дней назад, планируя на другую поездку домой, я собирался по той же длинной рутине. Заполнение формы локатора пассажира (как для OUT, так и входящих путешествий — 🤷) и предварительная заказа моего аэропорта COVID PCR Test.

К моему удивлению, имя теста изменилось с «COVID PCR — обязательного» к чему-то вроде «COVID PCR — 80 долларов).

Чего ждать?

Да, кажется, что отныне, штраф в 80 долларов США (извините, заряд) на человека — это обязательство, если вы хотите покинуть аэропорт. Другой вариант, платят наличными 100 долларов по прибытии (какая-то сделка AY?).

Я повторил тот же код, который используется для работы в прошлом году. Free1 и «подать заявку». Экран сообщил о красном сообщении об ошибке. » Неверный код ваучера «сказал он.

Я сделал что-нибудь киберпреступность в тот момент — повторил то же самое 3-5 раз (Genius). Когда это не сработало, я попробовал Free2 С Free80 и несколько других.

Когда я проверил исходящий запрос, я обнаружил, что его отправили на /API/Validate-Voucher конечная точка. Это вернуло странную ошибку HTTP; 422 (необрабабимая организация) и а {StatusCode: 422, сообщение: «Неверный ваучер или идентификатор назначения»} , Хм.. Какое «назначение»? Я пытался применить код скидки. После плохого ответа пользовательский интерфейс удаляет введенное код, эффективное «предотвращение использования кода. Тот факт, что он фактически удален, мог бы быть хорошим опытом пользователей, но в то же время — механизм предотвращения паршивания. » Почему бы не проверить это сам? » Я думал. 😈

Burp Suite Для спасения! Я уволяю Firefox и прокси все через Burp.

Проходя исходящие запросы, которые я вижу метрики и более метрики, 3-й партийные трекеры, а также othoTnot. Иногда я бы хотел, чтобы я не видел кучу веб-сайтов Chrap, заставляют нас отправлять. Пересылание всего, что это не интересно, пока упс, что это?

А Пост Запрос Удержания данных JSON:

{
  appointmentId: "12345",
  voucher: ""
}

Там мы идем, как насчет скольжения ранее действительного ваучера? Но подождите, это звучит знакомым .. раньше, когда я просто попытался ввести мой старый код скидки, я получил «недействительный назначений …», может ли одна и та же система фактически использовать для обоих целей — подтверждение кодов и Создание встреч? Это чувствует, что подвеска говорит мне, что я посмотрю что-то смешное. Я редактирую объект на лету и пересылаю его с помощью BURP.

{
  appointmentId: "12345",
  voucher: "Free1"
}

И то, что вы знаете, на экране появилась огромная блестящая зеленая этикетка: «Оплачено». Пять секунд спустя экран перезагрузил и был создан новый QR с назначением.

Мораль истории

Пользователи не тупые. Некоторые из них могут не иметь навыков или энергии для копания. Но если система, которая проводит личные медицинские записи и результаты, это легко использовать, что происходит в других областях?

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

Нужно проверить каждый и каждый входящий запрос, как будто он приходит из дикого (на самом деле это!). Нанимать нулевое доверие Отказ

Способы обрабатывать и общие подходы

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

Проверка, действителен ли код скидки в интерфейсе UI? Отлично, а как насчет бэкэнда? Браузер живет в юности, где разработчики не имеют контроля над тем, как приложение манипулирует или * MIS * используется. Нужно проверить каждый и каждый входящий запрос, как будто он приходит из дикого (на самом деле это …). Нанимать нулевое доверие Отказ

На той же ноте — пределы скорости входящих запросов; Когда я не мог применить свой старый Free1 Код скидки, я попробовал Free2 Тогда Free3 И так далее с разными перестановками. Казалось странным, что я могу просто продолжать толкать коды и узнать, они действительны или нет, поэтому я сделал то, что кто-то будет; Я написал сценарий. Пробовал несколько десятков из них только для развлечения. Хотя ничего не подошло, я снова провел веселье, с FFUF И я только что узнал, что система не ограничивает оценку запросов. При достаточно времени в их распоряжении разные пользователи могут управлять аналогичным сценарием в течение нескольких часов и дней. Это плохо для двух основных причин — а) Серверы бомбардируются с запросами. В случае, если он был построен правильно, он масштабируется, чтобы подавать атаки грубой силы (смешно самостоятельно). В худшем случае это вылетает. b) В какой-то момент появится действительный код скидки.

Еще один «скидочный код дружелюбный» эксплойт (который я не пытался получить полное снижение цен), является Состояние гонки где пользователь может повторно применить один и тот же код скидки, обычно дающий процент скидки несколько раз. Вот знаменитый нашел на Dropbox несколько лет назад Отказ

Чтобы суммировать вещи, безопасность систем должна быть высокой в списке приоритетов. Если не для дохода, по крайней мере, для конфиденциальности клиента. Веб-приложения могут быть «взломаны» более чем в одном из способов, и это может быть простым Отказ Мой Go-to подход при тестировании моих собственных приложений думает, как злонамеренный актер. Не обязательно эксперт по вопросам безопасности, который я далеко от, но пользователь с минимальными навыками и несколькими простыми пожеланиями. Как получить бесплатный сервис или скидка я не заслуживаю.

Спасибо за чтение 🖤 Не стесняйтесь обращаться с вопросами или комментариями.

Оригинал: «https://dev.to/omerxx/how-to-not-secure-web-payment-systems-3888»