Разбор Secured crabster [Web] [CC2020]

Разбор Secured crabster [Web] [CC2020]

Rubikoid

Второе задание на банк.

Сам таск

Заходим на сайт, и либо логинимся старым аккаунтом, либо создаем новый.

В форме трансфера денег на другой аккаунт видим поле поиска и пытаемся запихать в него что-нибудь нестандартное, например кавычку. Сервер кидает 500 и умирает.

Пихаем ' or 1=1 -- , и видим всю базу:

' or 1=1 -- залетел в поиск

В том числе видим юзера crabster, зайти за которого нам требуется по условию задания, кроме того, на нём единственном включен otp.

Дальше нужно достать пароль от этого пользователя, способов много, один из самых простых - перебрать строку через оператор like.

Скрипт-брутилка

В результате брута получаем пароль от крабстера - b0a3eaa4

Пробуем залогиниться и нас перекидывает на страницу с вводом OTP.

Страничка с OTP

В принципе, этот endpoint можно было найти и так, но без otpToken'a он бесполезен.

Потыкавшись в форму можно понять, что сервер требует не меньше и не больше трёх символов отпшки. Три символа - достаточно мало, и их легко перебрать, что и делает следующий скрипт:

Брутилка OTP

Запускаем скрипт, получаем код 014 и access_token в подарок, приписываем его через devtools хрома в local storage, обновляем страницу и получаем флаг: CC{be_safe_on_rave_27f021e7_e9a8}

Report Page