Ques/Help/Req HTB Cybermonday. Эксплуатируем путаницу ключей JWT

XakeR

Member
Регистрация
13.05.2006
Сообщения
1 912
Реакции
0
Баллы
16
Местоположение
Ukraine
В этом райтапе я покажу, как злоумышленник может использовать неверную настройку JSON Web Tokens при атаке на веб‑сервер. Также проэксплуатируем обход каталога в Nginx, получим доступ к Redis благодаря SSRF и поупражняемся в атаках, связанных с Docker.

Всё это — в рамках захвата тренировочной машины Cybermonday с площадки Hack The Box. Уровень ее — сложный.



Разведка​




Добавляем IP-адрес машины в /etc/hosts:

10.10.11.228 cybermonday.htb

И запускаем сканирование портов.

Справка: сканирование портов​


Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.

Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:

#!/bin/bashports=$(nmap -p- —min-rate=500 $1 | grep ^[0-9] | cut -d ‘/‘ -f 1 | tr ‘n’ ‘,‘ | sed s/,$//)nmap -p$ports -A $1

Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).

Результат работы скрипта

Nmap нашел всего два открытых порта: 22 — служба OpenSSH 8.4p1 и 80 — веб‑сервер Nginx 1.25.1.

Открываем сайт и пытаемся определить, какие используются технологии.

Главная страница сайта

На сайте есть возможность регистрации и авторизации — сразу же зарегистрируемся. Это откроет нам доступ к новым функциям и расширит область тестирования.

Главная страница авторизованного пользователя

На сайте ничего интересного найти не удалось, поэтому нужно провести сканирование в поисках скрытых возможностей и ресурсов.

Справка: сканирование веба c feroxbuster​


Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch, DIRB или ffuf. Я предпочитаю feroxbuster.

При запуске указываем следующие параметры:

  • -u — URL;
  • -k — игнорировать ошибки SSL;
  • -w — словарь (я использую словари из набора SecLists);
  • -t — количество потоков;
  • -d — глубина сканирования.

Задаем все параметры и запускаем сканирование:

feroxbuster -k -u -t 16 -d 1 -w files_interesting.txt Результат сканирования файлов с помощью feroxbuster

Нам доступно несколько интересных файлов. Увы, robots.txt оказался пустым, однако из .htaccess узнаём настройки доступа.

curl Содержимое файла .htaccess

Точка входа​


При тестировании формы авторизации я обнаружил, что если попытаться зарегистрировать второго пользователя на тот же почтовый ящик, то появится страница с ошибкой. Из нее мы выяснили, что сайт сделан на фреймворке Laravel.

Ошибка регистрации пользователя

Также здесь из‑за неправильной настройки Nginx возможна уязвимость типа Nginx Alias Traversal. Подробно я ее разбирал в райтапе по машине Pikaboo. Попробуем подобрать имя файла, используя обход каталога /assets../.

feroxbuster -k -u -t 8 -d 1 -w files_interesting.txt Результат сканирования файлов с помощью feroxbuster

Находим много интересного, к примеру файл .env, содержащий настройки служб.

Содержимое файла .env

Также доступен каталог .git, что дает нам возможность получить исходные коды сайта с помощью git-dumper.

mkdir git git-dumper ./git

Работать с git-репозиторием можно через VS Code.

История коммитов

Просматривая файлы сайта, узнаём о наличии роли isAdmin (строка 41).

Содержимое файла User.php

При этом в файле ProfileController.php при обновлении свойств профиля пользователя нет никакой проверки отправляемых параметров (строки 19–33).

Содержимое файла ProfileController.php

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!​


Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

-60%

1 год​


9990 рублей 4000 р.


[TD]

1 месяц​


920 р.
[/TD]

Я уже участник «Xakep.ru»
 
198 114Темы
635 085Сообщения
3 618 401Пользователи
EeOneНовый пользователь
Верх