TGViewer
Пентестер на мотоцикле Пентестер на мотоцикле @hackerbiker · 1.08K subscribers
Post #82 1.21K
😈 Ержан, вставай!

Давно не было разбора атак на моих проектах. Время исправляться, есть интересная находка. Впервые на проекте нашёл вектора для DoS-атаки, так еще и первая на практике критическая уязвимость.

Конечные точки API для осуществления денежного перевода на вход в JSON-запросе принимают экспоненциальное значение (1e-1) и обрабатывают её, выдавая в ответе рассчитанную сумму с учётом комиссии. При увеличении количества нулей в экспоненте (1e-100...) возрастает время ответа от сервера. На обычные запросы это ~100 мс, после 300, 1000, 8000 и так далее. Наткнулся на такое значение экспоненты, при котором ответ с сервера я получаю через 60000 мс (стандартное ограничение в некоторых браузерах) с 504 HTTP ошибкой.

Решили с Заказчиком провести более глубокое исследование потенциального DoS под наблюдением за сервером. Выяснилось, что экспонента 1e-100000000 и подобные нагружают сервер до 30% при отправке очередью (при ожидании ответа на каждый запрос), когда в обычном состоянии нагрузка не выше 5%. Физически такое число практически равно нулю, но математически нет. Если код пытается его обрабатывать "честно" (например, переводя в дробь или делая арифметику с высокой точностью), это может создать огромную вычислительную нагрузку. Всё говорит о серьёзной проблеме, учитывая то, что это было проделано лишь с помощью одного устройства. А если это сделать в кооперации с другими устройствами? Нагрузка выйдет куда выше.

▎ Риски:
➡️Отказ в обслуживании: один запрос нагружает сервер до 30%, а координированная атака способна нанести более серьёзный урон;
➡️Финансовые потери: запросы связаны с платёжным API, в случае его отказа возможны сбои в транзакциях пользователей;
➡️Репутационный ущерб: нестабильность сервиса подрывает доверие пользователей.

▎ Рекомендации по устранению уязвимости:
✅Валидация входных данных: запрет экспоненциальной записи;
✅Лимиты на обработку чисел: установка максимальной точности (например, округление до 5 знаков после запятой). Timeout на обработку запроса (например, 1 сек), при которой сервер автоматически будет откидывать запросы, которые обрабатывает более установленного времени;
✅Защита от DoS/DDoS: пропускать не более, например, 100 запросов/мин с одного IP, иметь детекты на атаку с различных IP-адресов и отражать вредоносные запросы на сервер;
✅Мониторинг и логирование: алерты при резком росте нагрузки на CPU, логирование подозрительных запросов.

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

"1e-100000000" — это не число, а таймер до перезагрузки сервера.

#кейс
  • 🔥 6
More from @hackerbiker
  1. Jul 15, 2026Post #136
  2. Mar 4, 2026🔊 Вскрываем периметр по-крупному Последние пару недель РАД КОП много говорит про гигиену…
  3. Mar 3, 2026Представьте: в углу офиса мирно стоит принтер, печатает отчёты… а в это время через него к…
  4. Feb 26, 2026🤨 Документация из хаоса Инструмент был написан в рамках стажировки Digital Security автор…
  5. Feb 24, 2026Маленькое пополнение в нашей семье☺️ Теперь у меня свой блэчер, бойтесь
  6. Feb 17, 2026😈 Регистрация — оружие массового поражения Недавно на финтех-проекте во время тестировани…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →