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

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

  • Раскрытие заголовка ответа сервера
  • Обнаружение уязвимостей на основе заголовков ответов
  • Раскрытие через robots.txt
  • Риск в исходнике HTML
  • Поиск сайтов, подверженных риску

Как злоумышленник создает профиль риска для веб-сайта

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

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

Мы рассмотрим национальную базу данных уязвимостей, которую можно найти здесь (Национальный институт стандартов и технологий (NIST). Злоумышленникам полезно сузить свой профиль риска.

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

Обнаружение уязвимостей на основе заголовков ответов

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

Мы можем проверить стек технологий, используя заголовок ответа здесь, щелкнув правой кнопкой мыши и проверив тестовый веб-сайт, указанный выше.

Перейдите во вкладки сети, снова обновите браузер и нажмите на первый ответ.

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

Www.shodanhq.com - это сайт для поиска устройств в Интернете. Shodan - это поисковая машина для всего в Интернете. В то время как Google и другие поисковые системы индексируют только Интернет, Shodan индексирует практически все остальное - веб-камеры, водоочистные сооружения, яхты, медицинские устройства, светофоры, ветряные турбины, устройства считывания номерных знаков, смарт-телевизоры, холодильники, все, что угодно. представьте, что он подключен к Интернету (а часто этого не должно быть).

Версии веб-сервера (например, Asp 4.0.30319, Apache 1.3.23) можно найти на этом веб-сайте. Мы можем сузить поисковые фильтры до стран и найти устройства, работающие с этими веб-службами в Интернете. Большинство безопасных веб-сервисов блокируют сканирование своих сервисов shodanhq и аналогичными провайдерами.

Отслеживание HTTP-адресов серверов

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

Что такое скрипач?

Fiddler - это прокси-сервер для веб-отладки для любого браузера, любого приложения, любого процесса. Регистрируйте и проверяйте весь HTTP (S) трафик между вашим компьютером и Интернетом, имитируйте запросы и диагностируйте сетевые проблемы. Fiddler доступен для macOS, Windows и Linux, и вы можете скачать его на их веб-сайте здесь.

Источник изображения: https://www.telerik.com/fiddler

Для тестирования вы можете найти сайты для моделирования ваших тестов здесь. Я выбрал для тестирования http://www.itsecgames.com/.

Итак, чтобы создать профиль нашего злоумышленника, давайте попробуем использовать на этом веб-сайте концепцию http fingerprinting. Мы можем пойти к скрипачу и запросить этот веб-сайт, а затем мы можем проверить заголовки ответов (сырые)

Нас больше всего интересует порядок, в котором возвращается сервер (nginx) и дата. Суть этого в том, что это помогает нам сузить наш профиль злоумышленника до технологии, лежащей в основе этого веб-сайта. Проверяя другой веб-сайт, мы видим, что заголовок даты возвращается последним, а заголовок сервера - задолго до него.

Ответ Fiddler для: https://overthewire.org/wargames/

Что ж, это все еще не сказало нам ничего впечатляющего, поэтому давайте попробуем сузить эту информацию, отправив неверный запрос. Мы пытаемся изменить версию http с http / 1.1 на http / x.1. Это возвращает ошибку 400 для обоих запросов, но с разными сообщениями об ошибках. Ответ этих веб-сайтов на HTTP-глаголы, такие как удаление, трассировка, поиск, может помочь нам создать профиль злоумышленника для этих веб-сайтов. Вся эта концепция называется http fingerprinting. Есть и другие раздачи, такие как скрытые поля, состояния использования.

Что такое robots.txt

Вся эта статья посвящена тому, как злоумышленник может начать создание профиля, выявление слабых мест на веб-сайте. Еще один полезный ресурс для злоумышленников - robots.txt.

Что такое файл robots.txt?

Robots.txt - это текстовый файл, который веб-мастера создают, чтобы проинструктировать веб-роботов (обычно роботов поисковых систем), как сканировать страницы на их веб-сайтах. Файл robots.txt является частью протокола исключения роботов (REP), группы веб-стандартов, которые регулируют, как роботы сканируют Интернет, получают доступ и индексируют контент, а также предоставляют его пользователям. REP также включает в себя директивы, такие как мета-роботы, а также инструкции для страницы, подкаталога или сайта о том, как поисковые системы должны обрабатывать ссылки (например, «следовать» или «nofollow»).

На практике файлы robots.txt указывают, могут ли определенные пользовательские агенты (программное обеспечение для веб-сканирования) сканировать части веб-сайта. Эти инструкции сканирования определяются как «запрещающие» или «разрешающие» поведение определенных (или всех) пользовательских агентов.

Основной формат файла robots.txt:

User-agent: [имя user-agent] Disallow: [строка URL-адреса, которую нельзя сканировать]

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

Мы можем проверить запрещенные маршруты на веб-сайте, добавив /robots.txt в конец веб-адреса. Возьмем, к примеру, www.nairaland.com. Www.nairaland.com/robots.txt возвращает список запрещенных маршрутов на сайте.

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

Вы можете найти полезную информацию о том, как скрыть файл robots.txt на своем веб-сайте и предотвратить атаки robots.txt, здесь.

Риски в исходном HTML-коде

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

Перейдите на сайт hackyourselffirst.troyhunt.com/robots.txt, где отображается список запрещенных путей.

Давайте перейдем к hackyourselffirst.troyhunt.com/secret/admin, который является частью URL-адреса, который предоставляет нам файл robotx.txt.

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

Хотя это кажется простым примером, но это случается. Если оставить такую ​​информацию, как библиотеки, используемые в вашем проекте, как мы видим здесь (jquery и bootstrap), или даже оставить конфиденциальную информацию в скрытых полях, это сделает ваш сайт уязвимым. Эти данные или параметры могут быть изменены с помощью концепции, называемой изменением параметров.

Заключение

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

Мы говорили о нескольких полезных концепциях, таких как поиск веб-сайтов, подверженных риску, снятие отпечатков пальцев, раскрытие информации через robots.txt и т. Д.

Это лишь малая часть того, что делают злоумышленники, чтобы взломать вас. Несколько других концепций, которые следует учитывать, включают:

  • SQL-инъекция
  • Межсайтовые атаки
  • Изменение параметров
  • Межсайтовый скриптинг
  • Печенье
  • DDOS

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

Ссылка

  1. Https://www.shodan.io/
  2. Сначала взломайте себя: как перейти к кибер-нападению. Трой Хант (Курс Pluralsight)