Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В этом райтапе я покажу, как обходить аутентификацию веб‑приложения, искать уязвимости в JWT и эксплуатировать уязвимости LFI и SSRF. Помимо этого, нам понадобится несколько внедрений команд при обработке данных.
Наша цель — захват учебной машины Awkward с площадки Hack The Box. Уровень сложности — средний.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Первым делом добавляем IP-адрес машины в /etc/hosts
:
10.10.11.185 awkward.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
).
Результат работы скрипта
По результатам сканирования видим всего два открытых порта: 22 — служба OpenSSH 8.9p1 и 80 — веб‑сервер Nginx 1.18.0. На SSH нам пока делать нечего, поэтому посмотрим, что нам покажет веб‑сервер.
Редирект на новый адрес
Главная страница недоступна, так как сайт выполняет редирект на новый домен. Добавляем этот адрес в файл /etc/hosts
и повторяем запрос.
10.10.11.185 awkward.htb hat-valley.htb
Главная страница сайта
Чтобы увеличить область тестирования, лучше всего построить карту сайта. Это можно сделать прямо в Burp Proxy, выбрав в контекстном меню Engagement tools → Discover content.
Карта сайта
На самом сайте ничего найти не удалось, и никакие дополнительные сканирования не помогли. Тогда я стал искать новые точки входа и нашел несколько новых страниц в файле app.js
.
Ссылка на страницу сайта
Ссылка на страницу сайта
Переходим на любую из них, нас встретит форма авторизации.
Форма авторизации сайта
Перебор простых логинов и паролей ни к чему не привел, и я вернулся к Burp History. В одном из запросов обратим внимание на передаваемые куки token=guest
.
Запрос на сайт в Burp Proxy
Попробуем использовать вместо guest
пользователя admin
в надежде на неправильную проверку значения. Для удобства можно просто создать правило замены в Burp Proxy.
Правило замены в Burp Proxy
И теперь нам доступна страница /dashboard
.
Страница dashboard
Локальное хранилище браузера
Просматривая Burp History, находим новый запрос к неизвестному API.
Burp History
На самой странице просто выводится ошибка JWT.
Ответ сервера
Источник: xakep.ru