Разбор Secured crabster [Web] [CC2020]
RubikoidВторое задание на банк.

Заходим на сайт, и либо логинимся старым аккаунтом, либо создаем новый.
В форме трансфера денег на другой аккаунт видим поле поиска и пытаемся запихать в него что-нибудь нестандартное, например кавычку. Сервер кидает 500 и умирает.
Пихаем ' or 1=1 -- , и видим всю базу:

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

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

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

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