Библиотека хакера | Hacking, Infosec, ИБ, информационная безопасность
12.5K subscribers
2.11K photos
126 videos
171 files
3.14K links
Все самое полезное по инфобезу в одном канале.

Список наших каналов: https://t.iss.one/proglibrary/9197

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67ab0e2e75b36e054ef6d5bf
Download Telegram
🔍 Разбор инцидента

Раннее мы выкладывали задачу 📎

В логах магазина видно два почти одинаковых запроса на оплату с одинаковым Idempotency-Key. Но обработаны они разными инстансами: один вернул статус processing, второй — paid. В итоге пользователю пришёл товар, но система зарегистрировала две транзакции.

Что могло привести к ошибке:

1. 🔥 Неправильно реализована идемпотентность: проверка Idempotency-Key не выполняется централизованно или атомарно. Из-за этого два разных инстанса приняли один и тот же ключ и создали две транзакции. Это самая вероятная причина проблемы.

2. 👾 Race condition: параллельные запросы были обработаны разными инстансами, что привело к созданию двух транзакций до синхронизации состояния между ними.

3. ❤️ Replay-атака: маловероятно, потому что IP-адреса в логах разные. Хотя теоретически возможно, что запрос был повторно отправлен с тем же ключом.

4. 👍 Интеграционный баг с платёжным провайдером: это также возможно, но не является основной причиной. Провайдер зарегистрировал оба статуса, но ошибки на его стороне не столь очевидны.


Правильный ответ:

Неправильно реализована идемпотентность: эта ошибка приводит к созданию двух транзакций с одинаковым ключом, так как проверка Idempotency-Key не была централизованной и атомарной, и запросы обработаны разными инстансами.

🐸 Библиотека хакера

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥2
🧩 Хакер-челлендж

Сценарий: веб-сервис принимает бинарный объект (pickle/unsafe JSON), десериализует и сразу вызывает метод process() у полученного объекта. Пользователь может загрузить произвольный байтстрим.

Что наиболее правдоподобно может произойти, если загрузить специально-сформированный объект? Голосуйте эмодзи:

🔥 — RCE: выполнить произвольный код на сервере (pickle позволяет инвокировать конструкторы/функции).

👾 — Эскалация привилегий: объект вызовет внутренний метод, открывающий админ-функции.

❤️ — DoS: CV-памяти/CPU через рекурсивные/тяжёлые объекты.

👍 — Утечка данных: объект инициирует исходящие запросы (exfiltration) и вернёт конфиденциальные данные.

🐸 Библиотека хакера

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👾52👍1
👨‍💻 Разбор — «Опасная десериализация»

Раннее мы выкладывали задачу 🦾

Сервис десериализует входной байтстрим (pickle/unsafe JSON) и сразу вызывает obj.process(). Если вход ненадёжный — можно выполнить произвольный код на сервере.

🅰️ Почему опасно: десериализация восстанавливает объекты и может запускать их конструкторы или методы без проверки. Это открывает путь к RCE, утечке данных или DoS.

🅰️ Хотфикс: запретить бинарную десериализацию из внешних источников.

❇️ Долгосрочно: перейти на безопасный формат (JSON со схемой) или изолировать выполнение.

❇️ Главная угроза — RCE.

🐸 Библиотека хакера

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2😁1