Категория > Новости > HTB Developer. Ломаем сайт на Django и реверсим приложение на Rust - «Новости»
HTB Developer. Ломаем сайт на Django и реверсим приложение на Rust - «Новости»20-01-2022, 00:00. Автор: Adamson |
Hack The Box.warningПодключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками. Разведка. Сканирование портовДобавляем IP-адрес машины в
10.10.11.103 developer.htb
И запускаем сканирование портов. Справка: сканирование портовСканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа. Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта. ports=$(nmap -p- --min-rate=500 $1 | grep^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1 Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция Результат работы скрипта Находим два открытых порта: 22, на котором работает SSH, и 80, отвечающий за веб. Справка: брутфорс учетокПоскольку вначале у нас нет учетных данных, нет и смысла изучать службы, которые всегда требуют авторизации (например, SSH). Единственное, что мы можем делать здесь, — это перебирать пароли брутфорсом, но у машин с HTB почти всегда есть другое прохождение. В жизни таких вариантов может не быть, к тому же имеются шансы подобрать пароль или получить его при помощи социальной инженерии. Начинаем, конечно же, с веба! Главная страница сайта Нас встречает сайт какой‑то CTF-площадки. Просмотрев его содержимое, обнаружим возможность регистрации и авторизации, но, что примечательно, нет ни одного файла на PHP. Возможно, это фреймворк на Python? Чтобы проверить догадку, просканируем скрытые директории в корневом каталоге сайта. Справка: сканирование веба c ffufОдно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB. Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
Команда получается следующая:
ffuf -uhttp://developer.htb/FUZZ -t 256 -wdirectory_2.3_medium_lowercase.txt
Результат сканирования каталоговВ выводе будет очень много каталогов, которые возвращают код 301 — редирект. Если перейти по любому из них, то нас встретит админка фреймворка Django. Панель авторизации Django Больше ничего не найдя, регистрируемся на первом сайте. Главная панель пользователя На самом сайте лежит по два‑три таска из разных категорий, но мой интерес привлекла страница с настройками профиля пользователя. Сканируем текстовые поля, но это не дает результата. Может, попробуем сдать любой из тасков? Это может открыть что‑то новое. Я решил просмотреть задание на форензику phished_credentials. Как сказано в условии задания, где‑то в файле есть пароль. Точка входаXLS sheet protect unlockОткрываем файл и видим скрытый столбец Содержимое документа phished_credentials.xls Но такую защиту можно легко снять. Откроем как архив и найдем в нем настройки для нужного листа. Так как тут он только один, нам нужен файл Содержимое архива В этом файле найдем и удалим следующую строку. Это поле
<sheetProtection algorithmName="SHA-512" hashValue="Y4Ko7kZUKStIxaVGWEtuMeRdnCiN7O3D8qZtKdo/2jP7WE6yzKQXUcSWQ/E0OrqHCzhOBFX+t8Db5Pxaiu+N1g==" saltValue="EoiHQklf0FagPs+iW0OzkA==" spinCount="100000" sheet="1" objects="1" scenarios="1"/>
Поле sheetProtectionПересохранив файл и открыв документ, обнаруживаем, что защиты больше нет. Раздвигаем столбец Флаг для задания Осталось передать его в форму на сайте. Отправка флага После обновления страницы ее вид немного меняется, вместо кнопки сдачи ответа появляется кнопка отправки решения. Страница челленджа Причем не через загрузку файла, а указывается URL страницы. Форма загрузки решения Tab NabbingЯ открыл локальный веб‑сервер Python 3 (команда Логи веб‑сервера Перейти обратно к новости |