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

[spoiler title=’Предыдущие статьи’]

  1. Тестирование: введение и задачи
  2. Сбор информации с помощью поисковых систем
  3. Определение веб-сервера
  4. Поиск информации в метафайлах веб-сервера
  5. Определение веб-приложений на сервере
  6. Поиск утечек информации в комментариях и метаданных
  7. Определение точек входа веб-приложения
  8. Составление карты веб-приложения
  9. Определение фреймворка веб-приложения
  10. Определение веб-приложения
  11. Составление карты архитектуры веб-приложения
  12. Тестирование конфигурации инфраструктуры веб-приложения
  13. Изучение расширений файлов
  14. Поиск страрых версий веб-приложения, скрытых файлов и резервных копий

[/spoiler]

Резюме

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

С помощью административного интерфейса пользователь может сделать многое с веб-приложением:

  • активация аккаунтов пользователей
  • изменение дизайна и верстки сайта
  • доступ к данным веб-приложения
  • изменение настроек

Во многих случаях административные интерфейсы плохо защищены от неавторизованного доступа, что делает их поиск важной задачей при проведении тестирования.

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

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

  • Административный интерфейс может быть просто скрыт от пользователей и его можно обнаружить простым брутфорсом, в некоторых случаях административный интерфейсы можно обнаружить с помощью Google дорков. Для брутфорса существует большое количество инструментов, некоторые из них приведены в данной статье.
  • Упоминания о административных интерфейсах можно встретить в исходном коде или комментариях.
  • Расположение административных интерфейсов по умолчанию во многих веб-приложениях можно узнать из их документации (например, WordPress).
  • Административные интерфейсы в некоторых случаях расположены на портах отличных от 80 и 443. Например, административный интерфейс Apache Tomcat часто можно найти на порту 8080.
  • Иногда доступ к административным интерфейсам обеспечивается GET, POST параметрами или куки, о подобном функционале могут свидетельствовать скрытые поля в формах:


<input type="hidden" name="admin" value="no">

Или куки:


Cookie: session_cookie; useradmin=0

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

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

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

Инструменты

  • Dirbuster — неактивный проект OWASP, но он все же может оказаться полезным для брута директорий и файлов.
  • THC-HYDRA — инструмент позволяющий брутить множество сетевых интерфейсов
  • Для брутфорса необходим хороший словарь, можно использовать следующие — netsparker, http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php, http://www.cirt.net/passwords.
  • От себя я бы посоветовал fuzzdb — крайне полезная сборка словарей для фаззинга, включая словари файлов и директорий, но не ограничиваясь только ими.