• Приглашаем на KubanCTF

    Старт соревнований 14 сентября в 10:00 по москве

    Ссылка на регистрацию в соревнованиях Kuban CTF: kubanctf.ru

    Кодебай является технологическим партнером мероприятия

Codeby Games Write-up "Ограничения"

morozko

Green Team
03.01.2024
13
17
BIT
239
Всем привет!
Данный таск рассчитан на внимательность игрока.

Перейдем на страницу с заданием - нажмём SING UP и зарегистрируемся. Далее войдем под нашими учетными данными и в личном кабинете увидим сообщение:
ограничения_1.jpg


Что же все верно, мы не admin. Я предлагаю выйти из нашего аккаунта и зарегистрировать новый где login = Admin а пароль, пароль))))
Давайте войдем под новыми учетными данными и посмотрим, что будет:
ограничения_2.jpg


А вот и флаг!

Всем спасибо, успехов!
 
Последнее редактирование:

vov4ick

Green Team
11.12.2022
53
124
BIT
1 005
Интересное решение , думаю в таске есть веб уязвимость, догадаться можно по содержимому флага, в данном случае необьязательно создавать юзера админ с этим паролем, он есть по дефолту в базе.
 
  • Нравится
Реакции: morozko

Cruel Lord

Green Team
29.08.2023
17
8
BIT
121
Всем привет!
Данный таск рассчитан на внимательность игрока.

Перейдем на страницу с заданием - нажмём SING UP и зарегистрируемся. Далее войдем под нашими учетными данными и в личном кабинете увидим сообщение:
Посмотреть вложение 73536

Что же все верно, мы не admin. Я предлагаю выйти из нашего аккаунта и зарегистрировать новый где login = Admin а пароль, пароль))))
Давайте войдем под новыми учетными данными и посмотрим, что будет:
Посмотреть вложение 73537

А вот и флаг!

Всем спасибо, успехов!
Таск всё таки не так должен решаться. Я уточнил у автора таска, он задумывался как обход ограничений, нужно было подумать, как создать УЗ админа, если она есть в базе. Скорее всего вы просто зашли под УЗ admin, которую создал другой пользователь и пароль просто подошёл. Я первый раз так же и решил, подумал, что слишком просто и решил разобраться
 
  • Нравится
Реакции: morozko

xuZ00

One Level
01.07.2023
7
6
BIT
70
Если покопаться тщательнее, то можно заметить (я это обнаружил, когда пытался раскрутить скулю (СПОЙЛЕР: скулю так и не докрутил, хотя пара зацепок есть)), что при регистрации пользователей some_user и some_user' (вместо кавычки можно поставить двойную, пробел и тд) с разными паролями (например 123 и 1234), то система не выдает ошибки о том, что такой пользователь существует. При этом ты можешь залогиниться как some_user по любому из этих 2-х паролей, что ты создал. Также, если ты пытался крутить скулю, ты обнаружишь, что при добавлении в БД и при аутентификации такие символы, как кавычки, пробелы и прочее нещадно режется, что также видно из моих слов выше.

Подытоживая, что можно сказать про данный вид уязвимости (или как я это вижу проанализировав этот таск):
1. При проверке на существование записи не применяется фильрация неугодных символов (какие, уже описал);
2. При внесении уже в БД нового пользователя, а также при аутентификации, фильтрация всё же применяется;
3. Учитывая вышеперечисленное мы понимаем, что в БД можно спокойно ввести дублирующую нужную учётную запись (в нашем случае admin) и уже залогиниться под ней.

P.S. Еще 1 интересный факт - отсутствие сброса данного таска, но мне кажется, что это сделано специально, чтобы нельзя было крутануть скуль через BLIND. Почему? Потому что там, судя опять же по моим наблюдениям за ошибками, запрос идет или через ORDER или GROUP BY, что намертво вешает вывод инфы даже при sleep(N), ибо он засыпает на N сек выводя каждую запись из базы для её обработки.
 
Последнее редактирование:
  • Нравится
Реакции: morozko
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!