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

Предыдущие статьи:

  1. Тестирование: введение и задачи
  2. Сбор информации с помощью поисковых систем
  3. Определение веб-сервера
  4. Поиск информации в метафайлах веб-сервера
  5. Определение веб-приложений на сервере

Резюме

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

Поставленные задачи

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

Как тестировать

В HTML комментарии разработчики включают различную отладочную информацию. Иногда они попросту забывают их убрать перед размещением веб-приложения в сети. Пентестеры должны изучить комментарии на всех страницах, которые начинаются с «<!—» (прим. переводчика: для поиска комментариев и метаданных отлично подходит OWASP Zed Attack Proxy, который содержит необходимый функционал для поиска).

Тестирование по методу черного ящика

Изучите все комментарии в исходном коде и попытайтесь найти информацию, которая может помочь атакующему при проведении атаки: SQL код, имена пользователей и пароли, внутренние IP-адреса или отладочную информацию.


...
<div class="table2">
<div class="col1">1</div>
<div class="col2">Mary</div>
<div class="col1">2</div>
<div class="col2">Peter</div>
<div class="col1">3</div>
<div class="col2">Joe</div>
<!-- Query: SELECT id, name FROM app.users WHERE active='1' -->

</div>
...

Иногда пентестер может столкнуться даже с подобным:


<!-- Use the DB administrator password for testing: f@keP@a$$w0rD -->

Изучите версию HTML и определение типа документа (DTD).


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

  • strict.dtd
  • loose.dtd
  • frameset.dtd

Некоторые мета теги не предоставляют векторов для атак, зато благодаря ним можно получить различную информацию


<META name="Author" content="Andrew Muller">

Некоторые мета теги изменяют HTTP заголовки в ответе, например, аттрибут http-equiv устанавливает заголовки в ответе сервера в соответствии с его содержимым:


<META http-equiv="Expires" content="Fri, 21 Dec 2012 12:34:56 GMT">

благодаря подобной конструкции появится HTTP заголовок:


Expires: Fri, 21 Dec 2012 12:34:56 GMT

Аттрибут http-equiv можно протестировать на наличие некоторых инъекционных атак (например, CRLF), хотя можно просто изменять запрос с помощью перехватывающего прокси (прим. переводчика).

Довольно часто используется аттрибут refresh

<META http-equiv="Refresh" content="15;URL=https://www.owasp.org/index.html">

В мета тегах также могут указываться ключевые слова для поиска


<META name="keywords" lang="en-us" content="OWASP, security, sunshine, lollipops">

Поведением поисковых системы в основном управляют с помощью файла robots.txt, однако это можно также делать с помощью тега meta. Данный тег не рекомендует индексировать страницу и переходить по ссылкам на данной странице

<META name=»robots» content=»none»>
Тестирование по методу серого ящика

Не применимо

Инструменты

  • Wget
  • Функция браузера «Исходный код страницы»
  • Глаза
  • Curl

Справочные руководства

  1. http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01

  2. http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML

  3. http://www.w3.org/TR/html5/ HTML version 5