Обзор метафайлов веб-сервера для выявления утечек информации
Резюме
В этом разделе описывается, как тестировать различные метаданные для выявления утечек информации о путях и функционале веб-приложения. Также можно составить список директорий, которых следует избегать паукам, роботам или краулерам, что поможет в определении путей выполнения через приложение. Кроме того, можно собрать другую информацию для идентификации атакующих поверхностей, технологий или для использования в социальных инженерных атаках.
Цели тестирования
- Определить скрытые или зашифрованные пути и функционал через анализ метаданных.
- Извлечь и сопоставить другую информацию для лучшего понимания систем.
Как тестировать
Все действия, описанные ниже с использованием 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 для анализа своего сайта. Процедура следующая:
- Войдите в Google Webmaster Tools.
- На панели управления введите URL сайта для анализа.
- Выберите один из доступных методов и следуйте инструкциям на экране.
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