Добрый день, коллеги.
Оговорюсь сразу, для того, чтобы не было недопониманий. Статья для тех, кто знает что такое CTF, у кого при тотальном отсутствии времени все же находится кроха времени для саморазвития и кто хочет опробовать свои текущие навыки и попытаться их развить…
Ну вот и закончился для меня лично тур по поиску токев на Pentestit Lab 12 и мы опубликовали врайтап по прохождению у нас и на дружественном codeby.net.
А выходные то длинные и гремучие. Вообщем ближе к ситиэфу.
В данной статье хочу Вам расказать, как получить инвайты для одного очень популярного CTF-ресурса hackthebox.eu.
1. Итак, при входе на основную страницу ресурса, нам необходимо авторизоваться или создать новую уч. запись для вход в ресурс.
2. Затем мы попадаем на страницу /invite
3. Ну так, как мы с Вами люди уже опытные, анализируем исходный код и обращаем внимание на скрипт /js/inviteapi.min.js
4. Так как это урезанная версия скрипта для оптимизации выдачи пользователю или в простонародье min — перейдем на линк со скриптом для яудобоваримого просмотра https://www.hackthebox.eu/js/inviteapi.min.js
5. Гениально, они дали доступ к формированию инвата самому — Баг или Фича остается пока загадкой. Давайте попробуем спросить у консоли браузера. А Какой черепок то красивый…
makeInviteCode()
И мы получили 200 ответ, вот это да…
{data: "Va beqre gb trarengr gur vaivgr pbqr, znxr n CBFG erdhrfg gb /ncv/vaivgr/trarengr", enctype: "ROT13"}
Кодировка rot13, эм, впервые слышу, ну давайте поищем… вот онлайн сервис, говорит нам, что это значит:
"In order to generate the invite code, make a POST request to /api/invite/generate"
6. т.е. нам нужно отправить POST запрос на страничку с генерацией, ох ты, ну давайте попробуем…
curl -XPOST https://www.hackthebox.eu/api/invite/generate
{"success":1,"data":{"code":"SEtJREQtWEdGQUwtTUJaTFYtVlhaRU8tTFBMQUk=","format":"encoded"},"0":200}clevergod@as0st:ccccccclcccccccccccccccccc
7. Получили бэйс 64, давайте конвертнем:
echo "SEtJREQtWEdGQUwtTUJaTFYtVlhaRU8tTFBMQUk=" | base64 -d
8. Теперь регистрируемся
Ну вот дамы и господа, мы получили инвайт, т.е. я так понял это своебразный таск до регистрации еще. Ну круто че, посмотрим что это нам дало и что из себя представляет лаба…
По факту это просто возможность регистрации, чтобы кто попало не получил доступ…
А вот и автоматизация
import requests
import base64
import json
HackboxURL = "https://www.hackthebox.eu/api/invite/generate"
JSONDATA = requests.post( HackboxURL )
print base64.b64decode(json.loads(JSONDATA.text)["data"]["code"])