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

Список наших каналов: https://xn--r1a.website/proglibrary/9197

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67ab0e2e75b36e054ef6d5bf
Download Telegram
🎯 Как получить FLAG, не зная пароль admin?

👍 — Брутфорс
👾 — NoSQL Injection
🔥 — SQL Injection
❤️ — JWT bypass

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

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👾85🔥1
🔓 Разбор задачи

Ответ: 👾 NoSQL Injection

❗️ Уязвимость:


User.findOne({ username, password });


Поля из req.body напрямую попадают в фильтр MongoDB.
Mongoose без sanitizeFilter позволяет операторные ключи ($ne, $gt и т.п.).

❗️ Эксплойт:


{
"username": "admin",
"password": { "$ne": null }
}


❗️ Запрос превращается в:


{ username: "admin", password: { $ne: null } }


Пароль admin ≠ null → документ найден → FLAG получен.

🛡️ Как фиксить:

Коротко и по делу:


mongoose.set('sanitizeFilter', true);


или проверять типы:


if (typeof password !== 'string') return 400;


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

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🥰21
✏️ Задача «Распродажа»

Представим, что специалистами по безопасности приложений была найдена ошибка в одном из продуктов, позволяющая изменять конечную цену товара. Известно, что внутри класса Promocode есть обращение к методу calculate_total. Выше представлена часть кода, содержащая уязвимость.

Какой вариант уязвимости представлен в коде:

🥰 — Race Condition при применении промокода

👾 — Race Condition при добавлении товаров

❤️ — TOCTOU (Time-of-Check-Time-of-Use) при расчёте скидки

🎁 Новогодняя акция: 3 курса по цене 1
🤝 Помощь с выбором курса

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

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰64👾3
🔍 Разбор задачи

В приложении допущена архитектурная уязвимость Race Condition.

🔘 Что пошло не так:

— Промокод проверяется только на пустоту.
— Далее создаётся объект Promocode, где сразу происходит расчёт скидки.
— Между созданием объекта и присвоением его в ShoppingCart есть короткое окно (десятки мс).
— При одновременных запросах сумма может пересчитаться несколько раз.

🔘 Почему это критично:

— Блокировка (self.lock) есть, но не применяется к промокодам.
— Промокод применяется до записи в поле корзины.
— is_valid влияет только на ответ метода, но не предотвращает применение скидки.

🔤 Исправление:

— Синхронизировать применение промокода.
— Проверки выполнять до изменения состояния корзины.

📌 Race Condition подробно разобраны в PortSwigger Web Academy — обязательная тема для backend и security.

🎁 Новогодняя акция: 3 курса по цене 1
🤝 Помощь с выбором курса

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

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1🥰1