HackTheBox — Получение инвайта.
Здравствуйте, дорогие друзья. Поговорим сегодня про площадку для хакеров, которая называется «HackTheBox». Хочу отметить, что просто так у нас нет возможности зарегистрироваться на этом сайте. Нужен инвайт, который надо будет достать с сайта:
![для регистрации на сайте hackthebox нужен инвайт](https://timcore.ru/wp-content/uploads/2021/05/001-12-1024x492.png)
Разработчики намеренно оставили эти действия для того, чтобы уже при регистрации, начать думать, как хакер и взломать сайт, получив инвайт.
Введем какой-либо код, не важно какой:
![вводим какой-либо код, не важно какой](https://timcore.ru/wp-content/uploads/2021/05/002-12.png)
Получаем ошибку.
Давайте посмотрим на код этой странице, с помощью встроенного инструмента «Инспектора кода», и после беглого просмотра на глаза попадается скрипт «/js/inviteapi.min.js»:
![скрипт «/js/inviteapi.min.js»](https://timcore.ru/wp-content/uploads/2021/05/003-11-1024x488.png)
Разработчики не выкладывают такие файлы наружу, и это зацепка.
Переходим на вкладку «Sources» и находим искомый файл «min.js», включив опцию «pretty-print»:
![Переходим на вкладку «Sources» и находим искомый файл «min.js», включив опцию «pretty-print»](https://timcore.ru/wp-content/uploads/2021/05/004-11-1024x681.png)
Код представляет собой стандартную функцию запаковки всего кода на javascript с явной функцией «eval».
Нам нужно cкопировать и выполнить этот код на вкладке «Console», назвав функцию «BOX»:
![Нам нужно cкопировать и выполнить этот код на вкладке «Console», назвав функцию «BOX»](https://timcore.ru/wp-content/uploads/2021/05/005-10-1024x700.png)
![](https://timcore.ru/wp-content/uploads/2021/05/006-9-1024x318.png)
В итоге мы ничего нового и полезного не узнали, кроме двух функций: «verifyInviteCode(code)», «makeInviteCode()». Функция «makeInviteCode()», отправляет данные на сервер. Посмотрим, какой ответ получили:
![Функция «makeInviteCode()», отправляет данные на сервер. Посмотрим, какой ответ получили](https://timcore.ru/wp-content/uploads/2021/05/007-7-1024x520.png)
Получили зашифрованные данные, методом ROT13, о чем говорит подсказка.
Расшифровка происходит с помощью декодера ROT13:
![Расшифровка происходит с помощью декодера ROT13](https://timcore.ru/wp-content/uploads/2021/05/008-7-1024x511.png)
Нам нужно отправить POST-запрос на /api/invite/generate. Он будет выглядеть как: «$.post(„/api/invite/generate“, function( r) {console.log( r);})»:
![Нам нужно отправить POST-запрос на /api/invite/generate. Он будет выглядеть как: «$.post(„/api/invite/generate“, function( r) {console.log( r);})»](https://timcore.ru/wp-content/uploads/2021/05/009-5-1024x212.png)
На первый взгляд кажется, что это BASE64, попробуем расшифровать код, с помощью функции atob():
![На первый взгляд кажется, что это BASE64, попробуем расшифровать код, с помощью функции atob()](https://timcore.ru/wp-content/uploads/2021/05/010-5.png)
Копируем полученное значение, которое похоже на инвайт, и вставляем его в поле для ввода:
![Копируем полученное значение, которое похоже на инвайт, и вставляем его в поле для ввода](https://timcore.ru/wp-content/uploads/2021/05/011-5-1024x475.png)
На этом все. Всем хорошего дня!