HackTheBox — как получить Invite код

Добрый день, коллеги.

Оговорюсь сразу, для того, чтобы не было недопониманий. Статья для тех, кто знает что такое 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"])