February 4

День 26. Walking An Application

Проверьте веб-приложение на наличие проблем безопасности вручную, используя только инструменты разработчика вашего браузера. Взлом с помощью одного только браузера, без инструментов или скриптов.

Комната - thm

https://tryhackme.com/room/walkinganapplication

1.Приложение для пеших прогулок

Запускаем кали и подключаемся к впн!

Проверяем доступ

работает

В этой комнате вы узнаете, как вручную проверить веб-приложение на наличие проблем безопасности, используя только встроенные инструменты вашего браузера. Зачастую автоматизированные инструменты и скрипты безопасности упускают множество потенциальных уязвимостей и полезной информации.

Вот краткий обзор встроенных инструментов браузера, которые вы будете использовать в этом помещении:

  • Просмотреть исходный код — используйте свой браузер для просмотра удобочитаемого исходного кода веб-сайта.
  • Инспектор — научитесь проверять элементы страницы и вносить изменения для отображения обычно заблокированного контента.
  • Отладчик — позволяет проверять и контролировать поток выполнения JavaScript-кода на странице.
  • Сеть — просмотр всех сетевых запросов, отправляемых страницей.

2. Изучение веб-сайта

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

Обнаружение интерактивных частей веб-сайта может быть как простым — например, поиск формы авторизации, — так и ручным анализом JavaScript-кода сайта. Отличным началом может стать простое изучение веб-сайта в браузере с фиксацией отдельных страниц/областей/функций и составлением краткого описания каждой из них.

Примерный обзор сайта технической поддержки Acme IT Support мог бы выглядеть примерно так:

3. Просмотр исходного кода страницы

Исходный код страницы — это удобочитаемый код, возвращаемый веб-сервером нашему браузеру/клиенту каждый раз, когда мы отправляем запрос.

Возвращаемый код состоит из HTML (языка гипертекстовой разметки), CSS (каскадных таблиц стилей) и JavaScript, и именно он сообщает нашему браузеру, какой контент отображать, как его показывать, а также добавляет элемент интерактивности с помощью JavaScript.

В наших целях просмотр исходного кода страницы может помочь нам получить больше информации о веб-приложении.

Как посмотреть исходный код страницы?

  1. При просмотре веб-сайта вы можете щелкнуть правой кнопкой мыши по странице, и в меню появится пункт «Просмотреть исходный код страницы».
  2. Большинство браузеров поддерживают добавление префикса view-source: перед URL-адресом, например, view-source:https://www.google.com/
  3. В меню вашего браузера вы найдете опцию просмотра исходного кода страницы. Эта опция иногда может находиться в подменю, например, в меню инструментов разработчика или в меню дополнительных инструментов.

Давайте посмотрим исходный код страницы!

Попробуйте просмотреть исходный код главной страницы сайта Acme IT Support. К сожалению, объяснение всего, что вы видите, выходит за рамки этой темы, и вам понадобятся курсы по веб-дизайну/разработке, чтобы полностью это понять. Что мы можем сделать, так это выбрать фрагменты информации, которые важны для нас.

В верхней части страницы вы заметите код, начинающийся <!--и заканчивающийся на -->– это комментарии. Комментарии – это сообщения, оставленные разработчиком веб-сайта, обычно для объяснения чего-либо в коде другим программистам или даже в качестве заметок/напоминаний для себя. Эти комментарии не отображаются на самой веб-странице. Этот комментарий описывает, что главная страница является временной, пока разрабатывается новая. Просмотрите веб-страницу в комментарии, чтобы получить свой первый флаг.

Ссылки на разные страницы в HTML записываются в теги привязки (это HTML-элементы, начинающиеся с <a), а ссылка, на которую вы будете перенаправлены, хранится в hrefатрибуте.

Исходный код страницы:

Например, ссылку на страницу контактов вы увидите в строке 31:

Если вы просмотрите исходный код страницы ниже, вы найдете скрытую ссылку на страницу, начинающуюся с "secr". Перейдите по этой ссылке, чтобы получить еще один флаг. В реальной жизни вы, конечно, не получите флаг, но вы можете обнаружить закрытую область, используемую компанией для хранения информации о компании/персонале/клиентах.

Внешние файлы, такие как CSS, JavaScript и изображения, могут быть включены с помощью HTML-кода. В этом примере вы заметите, что все эти файлы хранятся в одной директории. Если вы просмотрите эту директорию в своем веб-браузере, вы увидите ошибку конфигурации. Вместо этого должна отображаться либо пустая страница, либо страница 403 Forbidden с ошибкой, указывающей на отсутствие доступа к директории. Вместо этого включена функция отображения содержимого директории, которая, по сути, перечисляет все файлы в директории. Иногда это не проблема, и все файлы в директории безопасны для просмотра, но в некоторых случаях здесь могут храниться резервные копии файлов, исходный код или другая конфиденциальная информация. В этом случае мы получаем флаг в файле flag.txt.

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

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

What is the flag from the HTML comment?

Вопрос: Что означает флаг в HTML-комментарии?

Ответ:THM{HTML_COMMENTS_ARE_DANGEROUS}

What is the flag from the secret link?

Вопрос: Какой флаг используется в секретной ссылке?

Ответ:THM{NOT_A_SECRET_ANYMORE}

What is the directory listing flag?

Вопрос: Что означает флаг отображения списка файлов в каталоге?

Ответ:THM{INVALID_DIRECTORY_PERMISSIONS}

What is the framework flag?

Переходим

качаем зип и смотрим флаг

Вопрос: Что такое флаг фреймворка?

Ответ:THM{KEEP_YOUR_SOFTWARE_UPDATED}

4. Инструменты разработчика - Инспектор

Инструменты разработчика

В каждом современном браузере есть инструменты разработчика; это набор инструментов, помогающий веб-разработчикам отлаживать веб-приложения и позволяющий заглянуть «под капот» веб-сайта, чтобы увидеть, что происходит. Как специалисты по тестированию на проникновение, мы можем использовать эти инструменты для гораздо лучшего понимания веб-приложения. Мы сосредоточимся на трех функциях набора инструментов разработчика: инспекторе, отладчике и сети.

Открытие инструментов разработчика

Способ доступа к инструментам разработчика различается в зависимости от браузера. Если вы не знаете, как получить к ним доступ, нажмите кнопку «Просмотреть сайт» в правом верхнем углу этого задания, чтобы получить инструкции по доступу к инструментам для вашего браузера.

Инспектор

Исходный код страницы не всегда соответствует тому, что отображается на веб-странице; это связано с тем, что CSS, JavaScript и взаимодействие с пользователем могут изменять содержимое и стиль страницы, а это значит, что нам нужен способ увидеть то, что отображается в окне браузера в данный момент. Инспектор элементов помогает нам в этом, предоставляя нам динамическое представление того, что в данный момент находится на веб-сайте.

Помимо просмотра изображения в реальном времени, мы также можем редактировать элементы страницы и взаимодействовать с ними, что полезно для веб-разработчиков при отладке проблем.

На сайте Acme IT Support перейдите в раздел новостей, где вы увидите три новостные статьи.

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

Щелкнув правой кнопкой мыши по уведомлению о платном доступе (paywall), вы сможете выбрать пункт «Проверить код элемента» в меню, который откроет инструменты разработчика либо внизу, либо справа, в зависимости от вашего браузера и настроек. Теперь вы увидите элементы/HTML, из которых состоит веб-сайт (аналогично скриншотам ниже).

Найдите DIVэлемент с классом premium-customer-blockerи щелкните по нему. В окне стилей вы увидите все стили CSS, которые применяются к этому элементу, например, margin-top: 60pxи text-align: center. Нас интересует стиль display: block. Если вы щелкнете по слову block, вы сможете ввести значение по своему выбору. Попробуйте ввести none, и это заставит окно исчезнуть, открыв содержимое под ним и флажок. Если бы у элемента не было поля display, вы могли бы щелкнуть ниже последнего стиля и добавить свой собственный. Поэкспериментируйте с инспектором элементов, и вы увидите, что можете изменить любую информацию на веб-сайте, включая содержимое. Помните, что редактирование происходит только в окне вашего браузера, и после обновления все вернется в норму.

вместо block ставим ничто (none) и блок блокировки исчезает

флаг

What is the flag behind the paywall?

Вопрос: Что за флаг скрывается за платным доступом?

Ответ: THM{NOT_SO_HIDDEN}

5. Инструменты разработчика - Отладчик

Инструменты разработчика - Отладчик

Эта панель в инструментах разработчика предназначена для отладки JavaScript и, опять же, является отличной функцией для веб-разработчиков, желающих выяснить, почему что-то может работать не так. Но для специалистов по тестированию на проникновение она дает возможность глубоко изучить код JavaScript. В Firefox и Safari эта функция называется «Отладчик», а в Google Chrome — «Исходный код».

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

В обоих браузерах слева отображается список всех ресурсов, используемых текущей веб-страницей. Если вы перейдете в папку assets, вы увидите файл с именем flash.min.js. Щелкнув по этому файлу, вы увидите содержимое файла JavaScript.

Часто при просмотре JavaScript-файлов вы заметите, что весь код находится на одной строке. Это происходит потому, что файл был свернут, то есть все форматирование (табуляция, пробелы и переносы строк) было удалено для уменьшения его размера. Этот файл не является исключением, и он также был обфусцирован, что намеренно затрудняет его чтение, чтобы другие разработчики не могли легко его скопировать.

Мы можем вернуть часть форматирования, используя опцию "Pretty Print", которая выглядит как две фигурные скобки { }, чтобы сделать текст немного более читабельным, хотя из-за обфускации все еще сложно понять, что происходит с файлом. Если вы прокрутите файл flash.min.js до конца, вы увидите строку:flash['remove']();

Находим данный блок и останавливаем его

What is the flag in the red box?

Вопрос: Что изображено на флаге в красной рамке?

Ответ:THM{CATCH_ME_IF_YOU_CAN}

6. Инструменты разработчика - Сеть

Вкладка «Сеть» в инструментах разработчика позволяет отслеживать все внешние запросы, отправляемые веб-страницей. Если вы перейдете на вкладку «Сеть», а затем обновите страницу, вы увидите все файлы, которые запрашивает страница.

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

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

Изучите новую запись на вкладке «Сеть», созданную контактной формой, и просмотрите страницу, на которую были отправлены данные, чтобы обнаружить соответствующий флажок.

X-FLAG:THM{HEADER_FLAG} - но это не тот флаг

пробуем поработать с отправкой контактов

смотрим респонс

What is the flag shown on the contact-msg network request?

Вопрос: Какой флаг отображается в сетевом запросе contact-msg?

Ответ:"THM{GOT_AJAX_FLAG}"


Основная группа обучения ИБ
Lab-группу с полезным софтом / книгами / аудио.
Чат для обсуждений, задавай свои вопросы.
P.S. С вами был @Fnay_Offensive
До новой встречи, user_name!