Всё о CTF в России

Task-bot 2019: итоги шестой недели и старт седьмой

2019-07-15 15:45:58

Рассказываем, как решался таск, который не только стойко выдержал все нападки sqlmap`ами, но и (внезапно!) принес грант разработчику задания.

Введите описание изображения

Lucky flag (400 PTS)

Увидев турнирную таблицу, один из разработчиков решил разыграть флаг. Для этого он создал сайт и одного из зарегистрировавшихся на нем 31.07.2019 он сделает счастливым. Но, может есть способ раньше получить флаг?

https://luckyflag.letoctf.org/

Первое что сделаем, так это переходим по ссылке и видим следующую страницу:

Введите описание изображения

Изучив функционал сайта, не видим ничего на первый взгляд подозрительного. Просмотрев https://luckyflag.letoctf.org/robots.txt можно увидеть, что пытались скрыть каталог ./bc

Введите описание изображения

Перейдя в каталог, видим архивы с бэкапами. Скачиваем и просматриваем содержимое.

Введите описание изображения

Просмотрев исходники, мы понимаем, что используется фреймворк Fat-Free Framework. В бэкапе были затерты некоторые поля зведочками или словом «HIDEN». Внимание привлекает исходники priz.php, в котором «какое-то мясо».

Введите описание изображения

Закинув часть кода в гугл, мы узнаем о применении деобфускатора Decode Zeura v1.0. Посмотрев внимательно, увидим часть условий для получения ссылки для просмотра флага.

Введите описание изображения

1) Логин должен содержать letoctf_

2) И пользователь в БД в поле lucker должен содержать 1

Но для проверки второго условия используется незащищенный запрос к БД, в него передается значение из сессии. Найдем, где присваиваются значения сессии с именем пользователя. При регистрации происходит экранирование. Но при авторизации значение берётся из БД и не экранируется.

Регистрируем пользователя letoctf_test' and 1=0 or lucker=1 --, деавторизуемся, авторизуемся, переходим на страницу Приза и видим, что нам предлагают получить флаг:

Введите описание изображения

Но получаем сообщение о попытке взлома.

Написав простенький алгоритм, выполняем слепую SQL-инъекцию.

Получаем логин и хеш пароля.

letoctf_2907fffe3007d90C77E0800822c8CA5B0E4253910e66a65D3b8EE57803c7948E_Hackers

49c87b3ccac69a78a2e3451a26ed2b02

С помощью любого сервиса находим пару md5(text) --> text

Пароль: Hackers

Авторизуемся и получаем флаг.

Введите описание изображения

Список людей, решивших этот таск:

  1. kekov - 1547 PTS
  2. rinagert512 - 1564 PTS
  3. maximadrian - 1269 PTS
  4. ajanshd - 536 PTS
  5. null_p0inter - 368 PTS

Поздравляем, вы восхитительны! Но восхитителен и разработчик задания Денис Саврадым, которому наши постоянные партнеры, защищающие соревнования от DDoS-атак уже на протяжении полутора лет, компания SERVICEPIPE, решила предоставить персональный грант на участие в Летней школе.

Присоединиться к Денису можно всё так же, выиграв грант от компании Positive Technologies, ведь новый таск уже у бота! На этот раз у нас в программе PWN из Воронежа от @ff_one с екатеринбургским саппортом в лице @keltecc.

Keystore (300 PTS)

Один из организаторов ЛШ2019 использует самодельный сервис для хранения паролей, естественно все защищено по максимуму и известны только ip и port сервиса. Я думаю и тут для тебя нет преград (x86)

nc pwn.letoctf.org 15551

Данные по предпоследней неделе:

Начало: 15 июля в 15:00

Дедлайн: 19 июля

Бот: https://t.me/ctfnewsbot

Чат: https://t.me/letoctfbot2019

Формат флага: LetoCTF{text}