Категория > Новости > HTB Intentions. Эксплуатируем сложную SQL-инъекцию для дампа базы данных - «Новости»
HTB Intentions. Эксплуатируем сложную SQL-инъекцию для дампа базы данных - «Новости»24-10-2023, 16:10. Автор: Ника |
Hack The Box сложного уровня (hard).warningПодключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками. Читайте также - Основными видами деятельности компании тогда являлась работа с натуральным камнем: гранитом,мрамором. В процессе развития появились новые направления: работа с диким камнем, а также набирающим популярность искусственным камнем - столешницы из гранита цена по доступным ценам. РазведкаСканирование портовДобавляем IP-адрес машины в 10.10.11.220 intentions.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 — служба OpenSSH 8.9p1 и 80 — веб‑сервер Nginx 1.18.0. Брутить SSH на машинах с HTB не принято, а на сайте нас встречает форма авторизации и регистрации. Страница авторизации Точка входаРегистрируем нового пользователя и авторизуемся на сайте. Главная страница авторизованного пользователя На странице профиля пользователя находим поле, на которое мы можем воздействовать. Страница профиля пользователя Заглянув в Burp History (а все действия я рекомендую проводить через Burp), обнаружим, что используется API. История запросов В поле изменения жанра я попробовал вставить нагрузку Запрос на серверОтвет сервера Стоит отметить, что нагрузку мы отправляем к API Точка опорыBurp MacroПервым делом я решил перебрать разные нагрузки с помощью Burp Intruder. Но сложность в том, что нужно выполнять два запроса — один с нагрузкой, а другой для проверки результата. Тут нам могут помочь макросы, которые задаются через настройки Burp. Переходим к списку правил сессии и создаем новое. Список правил сессий В открывшемся окне в поле Rule action создаем новый макрос Настройки правила Для созданного макроса открываем Editor и выбираем запрос к API: Настройки макроса Подтверждаем — и в окне с настройками созданного правила видим наш макрос. Настройки правила Переходим на вкладку Scope и в параметре URL scope выбираем Include all URLs, чтобы правило применялось абсолютно ко всем запросам. Настройки правила Подтверждаем установленные параметры и видим созданное правило в общем списке правил. Список правил сессий Теперь переносим запрос к API Burp Intruder — вкладка PositionsBurp Intruder — вкладка Settings Так как мы используем правило с несколькими запросами, перебирать нужно в один поток. Результат перебора Просмотрев результат, я ничего необычного не нашел, кроме того, что мы получаем ошибку при отправке символа Немного побродив по сайту, замечаем, что жанр также используется при просмотре галереи. Там выполняется вызов API Запрос в Burp History Мы получаем разные изображения в зависимости от установленного у нас жанра. Этот момент тоже необходимо протестировать, поэтому возвращаемся к нашим правилам и изменяем макрос, чтобы он выполнял запрос к API Настройки макросаMacro Recorder После изменения макроса переводим запрос в Burp Repeater и отправляем обычную нагрузку с комментарием для Boolean-based-инъекции Запрос на серверОтвет сервера В ответ получаем ошибку — видимо, из‑за кавычки. Тогда пробуем указать нагрузку без кавычки. Запрос на серверОтвет сервера Запрос обработан, но данные никакие не получаем. Переходим к перебору нагрузок. SQL-инъекцияНастраиваем Burp Intruder в один поток, только в этот раз ничего извлекать из ответа не будем, а просто отсортируем результат по размеру ответа. Burp Intruder — вкладка PositionsРезультат атаки Перейти обратно к новости |