Перейти к содержанию

Обзор метафайлов веб-сервера для выявления утечек информации

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

Цели тестирования

  • Определить скрытые или зашифрованные пути и функционал через анализ метаданных.
  • Извлечь и сопоставить другую информацию для лучшего понимания систем.

Как тестировать
Все действия, описанные ниже с использованием wget, можно выполнить и с помощью curl. Многие инструменты для динамического тестирования безопасности (DAST), такие как ZAP и Burp Suite, включают проверки или парсинг этих ресурсов как часть своей функциональности. Их также можно идентифицировать с помощью различных Google Dorks или используя расширенные функции поиска, такие как inurl:.

Robots.txt

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

Пример robots.txt:

User-agent: *
Disallow: /search
Allow: /search/about
...

Директива User-Agent указывает на конкретный веб-паук/робота/краулера. Например, User-Agent: Googlebot относится к пауку от Google. Директива Disallow указывает, какие ресурсы запрещены для пауков/роботов/краулеров.

Для получения файла robots.txt можно использовать команду:

curl -O -Ss http://www.google.com/robots.txt && head -n5 robots.txt

Анализ robots.txt с помощью Google Webmaster Tools

Владельцы сайтов могут использовать функцию "Анализ robots.txt" в Google Webmaster Tools для анализа своего сайта. Процедура следующая:

  1. Войдите в Google Webmaster Tools.
  2. На панели управления введите URL сайта для анализа.
  3. Выберите один из доступных методов и следуйте инструкциям на экране.

META-теги

<META> теги находятся в разделе HEAD каждого HTML-документа и должны быть одинаковыми на сайте, чтобы робот/паук/краулер мог начать с другого документа, а не только из корневого каталога. Директивы для роботов также можно указать с помощью специфического META-тега.

Тег Robots META:
Если тег <META NAME="ROBOTS" ... > отсутствует, то по умолчанию "Протокол исключения для роботов" устанавливается на INDEX,FOLLOW. Другие два допустимых значения, определенные "Протоколом исключения для роботов", начинаются с NO..., т.е. NOINDEX и NOFOLLOW.

На основе директив Disallow, перечисленных в robots.txt, можно искать <META NAME="ROBOTS" на каждой веб-странице и сопоставить результаты с файлом robots.txt.

Прочие META-информационные теги

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

Пример мета-данных с сайта www.whitehouse.gov:

<meta property="og:title" content="The White House" />
<meta property="og:description" content="..." />
...

Sitemap

Sitemap — это файл, где разработчик или организация могут предоставить информацию о страницах, видео и других файлах, доступных на сайте или в приложении, а также о взаимосвязи между ними. Поисковые системы могут использовать этот файл для более разумного обхода вашего сайта. Тестировщики могут использовать файлы sitemap.xml для более полного изучения сайта или приложения.

Пример извлечения sitemap.xml от Google:

wget --no-verbose https://www.google.com/sitemap.xml && head -n8 sitemap.xml

Security TXT

security.txt — это предложенный стандарт, который позволяет веб-сайтам определять политики безопасности и контактные данные. Этот файл может быть полезен в тестировании для:

  • Определения дополнительных путей или ресурсов для анализа.
  • Сбора открытой информации.
  • Поиска информации о баг-баунти и т.д.

Файл может находиться как в корневом каталоге веб-сервера, так и в директории .well-known/.

Пример с LinkedIn:

wget --no-verbose https://www.linkedin.com/.well-known/security.txt && cat security.txt

Humans TXT

humans.txt — это инициатива для того, чтобы узнать о людях, стоящих за сайтом. Этот файл содержит информацию о различных людях, участвующих в создании сайта.

Пример с Google:

wget --no-verbose  https://www.google.com/humans.txt && cat humans.txt

Прочие источники информации в .well-known

Существуют и другие стандарты и интернет-документы, которые предлагают стандартизированное использование файлов в директории .well-known/. Тестировщики могут изучить эти документы и создать список файлов для проверки.

Инструменты

  • Браузер (Просмотр источника или инструменты разработчика)
  • curl
  • wget
  • Burp Suite
  • ZAP