Skip to content

Latest commit

 

History

History
31 lines (23 loc) · 2.42 KB

File metadata and controls

31 lines (23 loc) · 2.42 KB

Odessa (18.owaspctf.gq)

На главной странице видим игру 2048 на javascript, на всякий случай проверяем исходный код но ничего кроме самой игры на странице нет.

dirb находит директорию /admin/ с логин формой. В начале формы есть строка Admin ctfCorp.com. Если попробовать комбинацию логин пароль admin@ctfcorp.com:password получаем ошибку Wrong password. Если поменять логин на любой другой то ошибка будет User does not exist.

Помимо формы для авторизации, так же есть форма для восстановления пароля http://18.owaspctf.gq/admin/recovery.php. Если передать правильный логин получаем сообщение: We sent you a recovery link like http://18.owaspctf.gq/admin/recovery.php?token=xxxxxx to your email

В ходе решения других заданий было замечено что 18.owaspctf.gq является дефолтным виртуальным хостом у веб-сервера. То есть если обратиться к несуществующему виртуальному хосту мы все равно попадаем на 18-ое задание.

$ dig +short a 18.owaspctf.gq
104.248.93.50
$ curl --silent -H 'Host: foobar' 'http://104.248.93.50/admin/' | grep ctf
  <h1>Admin ctfCorp.com Log in</h1>

Попробуем изменить хедер Host при отправке POST запроса на сброс пароля:

$ curl --silent -H 'Host: foobar' 'http://104.248.93.50/admin/recovery.php' --data 'email=admin@ctfcorp.com&go=Recover' | grep 'foobar'
  <p>We sent you a recovery link like http://foobar/admin/recovery.php?token=xxxxxx to your email</p><br>  <p class="p-container">

Запускаем tcpdump на своем сервере и повторяем процедуру заменив foobar на ip сервера. Видим попытку подключения на 80 порт. Открываем 80 порт и опять повторяем запрос. Получаем запрос содержащий токен. Отправляем токен на сервер задания.

FLAG{I_hope_it_was_not_a_bruteforce}