Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Начинаем, как обычно, со сканирования портов машины.
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта.
ports=$(nmap -p- --min-rate=500 $1 | grep^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).
Видим много открытых портов:
Ни SMB, ни LDAP ничего путного не ответили, к MS SQL дефолтные учетные данные не подошли, поэтому нам остался только веб. Тем более SSL-сертификат для порта 443 раскрывает нам еще два доменных имени, которые мы заносим в файл /
.
10.10.11.158 streamio.htb DC.streamIO.htb watch.streamIO.htb
Главная страница сайта streamio.htbГлавная страница сайта watch.stream.htbНа первом сайте находим форму авторизации.
Так как мы точно знаем, что на хосте работает СУБД, стоит проверить некоторые методы для обхода авторизации. Перебирать будем по списку с помощью Burp Intruder.
Это ничего не дало, поэтому попробуем нагрузки для поиска SQL-инъекции. И срабатывает нагрузка ;
для MS SQL с временной задержкой, которую можно определить по столбцу Response time.
Мы подтвердили наличие уязвимости, а значит, можем использовать sqlmap для удобной эксплуатации. Сперва запустим ПО для подбора нагрузки и создания шаблона.
sqlmap -uhttps://streamio.htb/login.php --data='username=admin&password=admin' -pusername --batch
Информация об уязвимостиТеперь мы можем приступить к получению данных. Первым делом нужно узнать названия существующих БД (параметр --dbs
).
sqlmap -uhttps://streamio.htb/login.php --data='username=admin&password=admin' -pusername --batch --dbs
Базы данныхТут нас интересуют две базы: streamio_backup
и STREAMIO
. Первую мы просмотреть не можем, поэтому получим таблицы второй (параметр --tables
).
sqlmap -uhttps://streamio.htb/login.php --data='username=admin&password=admin' -pusername --batch -DSTREAMIO --tables
Таблицы из базы STREAMIOСразу становится ясно, что следующая цель — таблица users
. Чтобы не пытаться вытащить все данные, попробуем получить названия колонок (параметр --columns
).
sqlmap -uhttps://streamio.htb/login.php --data='username=admin&password=admin' -pusername --batch -DSTREAMIO -T users --columns
Колонки в таблице users
sqlmap -uhttps://streamio.htb/login.php --data='username=admin&password=admin' -pusername --batch -DSTREAMIO -T users -Cusername,password --dump
Теперь получим данные (параметр --dump
) только из колонок username
и password
.
У нас очень много хешей, предположительно MD5. Чтобы найти прообраз, я пользуюсь онлайновым ресурсом crackstation.net.
В итоге мы получаем следующие пары логинов и паролей, с которыми можно попытаться авторизоваться на сайте.
Но, к сожалению, доступ мы так и не получаем. Может, на сайте есть админка? Чтобы найти ее, будем брутить каталоги.
ffuf -u 'https://streamio.htb/FUZZ' -t 256 -wdirectory_2.3_medium_lowercase.txt
Результат перебора каталоговЕсть каталог admin
, где мы авторизуемся от имени пользователя yoshihide
.
У нас есть несколько доступных страниц. Но важны не сами страницы, а то, как сервер узнает, какую загрузить, — по имени параметра.
С помощью Burp Intruder мы можем пробрутить название параметра, чтобы попробовать найти новые страницы.
В итоге определяем четыре страницы. Три из них нам уже известны, а вот debug
— что‑то новенькое.
Эта страница должна позволять читать файлы. Нас интересует код на PHP, а чтобы его получить, нужно использовать обертки на PHP. Давай закодируем страницу index.
в Base64.
?debug=php://filter/convert.base64-encode/resource=index.php
Получение страницы index.phpДля декодирования выделяем интересующий нас текст прямо в Burp и нажимаем Ctrl-Shift-B.
|
|