![]() |
Всем привет!
Данный таск рассчитан на внимательность игрока. Перейдем на страницу с заданием - нажмём SING UP и зарегистрируемся. Далее войдем под нашими учетными данными и в личном кабинете увидим сообщение: https://forum.antichat.xyz/attachmen...c3fb3c1882.png Что же все верно, мы не admin. Я предлагаю выйти из нашего аккаунта и зарегистрировать новый где login = Admin а пароль, пароль)))) Давайте войдем под новыми учетными данными и посмотрим, что будет: https://forum.antichat.xyz/attachmen...1a26da5e82.png А вот и флаг! Всем спасибо, успехов! |
Интересное решение , думаю в таске есть веб уязвимость, догадаться можно по содержимому флага, в данном случае необьязательно создавать юзера админ с этим паролем, он есть по дефолту в базе.
|
Цитата:
|
Если покопаться тщательнее, то можно заметить (я это обнаружил, когда пытался раскрутить скулю (СПОЙЛЕР: скулю так и не докрутил, хотя пара зацепок есть)), что при регистрации пользователей some_user и some_user' (вместо кавычки можно поставить двойную, пробел и тд) с разными паролями (например 123 и 1234), то система не выдает ошибки о том, что такой пользователь существует. При этом ты можешь залогиниться как some_user по любому из этих 2-х паролей, что ты создал. Также, если ты пытался крутить скулю, ты обнаружишь, что при добавлении в БД и при аутентификации такие символы, как кавычки, пробелы и прочее нещадно режется, что также видно из моих слов выше.
Подытоживая, что можно сказать про данный вид уязвимости (или как я это вижу проанализировав этот таск): 1. При проверке на существование записи не применяется фильрация неугодных символов (какие, уже описал); 2. При внесении уже в БД нового пользователя, а также при аутентификации, фильтрация всё же применяется; 3. Учитывая вышеперечисленное мы понимаем, что в БД можно спокойно ввести дублирующую нужную учётную запись (в нашем случае admin) и уже залогиниться под ней. P.S. Еще 1 интересный факт - отсутствие сброса данного таска, но мне кажется, что это сделано специально, чтобы нельзя было крутануть скуль через BLIND. Почему? Потому что там, судя опять же по моим наблюдениям за ошибками, запрос идет или через ORDER или GROUP BY, что намертво вешает вывод инфы даже при sleep(N), ибо он засыпает на N сек выводя каждую запись из базы для её обработки. |
Так никто развернутого writeup не оформил. (как сделал сам автор, так и не понял :\)
|
| Время: 18:49 |