Attack-Defense CTF от команд dtl & Pudge Fun Club
1 марта в день тотального отсутствия интернета в МИФИ состоялась очная шестичасовая CTF-тренировка в формате Attack-Defense для мифистов, студентов московских вузов и не только. Авторами сервисов выступила университетская команда dtl и команда лицеистов из Предуниверситариев МИФИ Pudge Fun Club.
Расскажем более подробно о происходившем в сюжете: всей инфраструктурой героически занимался Алексей Тарасов, участник команды dtl и студент 3 курса. В 10:43 от главного разработчика соревнования поступило сообщение "Я, кажется, не успеваю всё поднять ко времени", также через мгновение было сделано сенсационное заявление "По крайней мере с технической стороны сюрпризов не ожидается".
Сюрпризов действительно не было, была неожиданность в виде непредсказуемого поведения борды, которая в процессе была сведена на нет правильной настройкой ядра.
Теперь о сервисах, которые предлагались участникам:
Сервисы от команды Pudge Fun Club
- file storage — самый небольшой и простой сервис, который у многих команд лежал большую часть игры. Вблизи напоминал дырявый дуршлаг, содержал очень много уязвимостей, которые и позволяли класть сервис соперникам;
- shpagodrach — несложный, но хороший сервис на языке C, включающий в себя несколько pwn уязвимостей. Оказался вскрыт вторым и довольно быстро, быстрее, чем ожидалось. Из интересного — в сервисе была никак не использующаяся картинка с бананом, которую, однако, нельзя было удалять, иначе весь сервис бы схлопнулся;
- magazinchik — большой бинарный сервис на языке C++, в который была встроена собственная реализация http-сервера. Кстати, во время разработки именно на этот сервис ушло больше всего времени на проверку, правки и исправления. В игре сервис вскрыли довольно быстро, так как он содержал несколько (как минимум две) незапланированные уязвимости. Далее почти все время сервис находился в статусе CORRUPT, так как через найденные уязвимости игроки удаляли флаги друг у друга;
Сервисы от команды dtl
- rce as a service — сервис, в котором самым сложным было — начать его решать. Сервис включал в себя код на языке Rust, работающий с WebAssembly, что оказалось новинкой для многих участников. На самом деле, сервис был довольно простым и даже содержал тривиальное незапланированное решение. А именно — доступный извне контейнер с базой данных, в которой хранились пароли. К нему можно было просто подключиться.
- bimba — сервис, ставший самым сложным для участников. Содержал в себе уязвимость нулевого дня в библиотеке для работы с docx файлами на Java, позволяющую читать произвольные файлы из файловой системы. За 10 минут до окончания игрового времени сервис был вскрыт единственной командой, что невероятно осчастливило автора.
Всего в тренировке приняло участие 33 команды в онлайн-формате и 14 команд очно на базе Студенческого офиса НИЯУ МИФИ.
На пьедестале оказались команды 1️⃣BinaryBears (МТУСИ), 2️⃣LIT ENERGY (НИУ ВШЭ) и 3️⃣LostAx3s, наши поздравления! Лучшие результаты среди команд МИФИ у Тележки из Ашана (Борис Коротаев, Иван Самсонов) и Rop Runners (Дмитрий Ванин, Федор Луканин).