WebScarab

WebScarab — проект организации OWASP (Open Web Application Security Project), международной некоммерческой организации, занимающейся вопросами безопасности веб-приложений. Консультантом и ведущим разработчиком WebScarab является Rogan Dawes. Программа распространяется под лицензией GNU GPLv2.

WebScarab предназначен для анализа безопасности веб-приложений. Является инструментом-посредником (прокси-сервером), который перехватывает HTTP(S)-трафик между пользователем и сервером, что позволяет читать, изменять и создавать новые запросы. Программа написана на Java и реализована как расширяемая платформа для плагинов, которые предоставляют различные способы анализа запросов и ответов.

Интерфейс WebScarab может быть не самым удобным для начинающих пользователей, поскольку не отличается особой интуитивностью и требует привыкания. Организация OWASP также ведёт разработку проекта WebScarab NG — переписанной версии инструмента с более современным и удобным интерфейсом, хотя на данный момент его возможности ограничены.

Что важно знать
WebScarab
Тип анализатор безопасности веб-приложений
Автор Rogan Dawes
Разработчик OWASP
Написана на Java
Интерфейс графический пользовательский интерфейс, основанный на плагинах
Операционная система кроссплатформенное ПО (поддержка Java)
Языки интерфейса многоязычный
Лицензия GNU GPLv2
Сайт owasp.org/index.php/Cate…

Основные настройки

Настройка полного интерфейса

При первом запуске программы отображается ограниченный пользовательский интерфейс, включающий только две панели — Summary и Intercept, предназначенные для базового анализа. Для перехода к расширенной версии необходимо отметить опцию «Use full-featured interface» и перезапустить WebScarab. После этого становятся доступны плагины с расширенными функциями анализа.

Конфигурация соединения с браузером

Чтобы перехватывать трафик между веб-браузером и сервером, в настройках браузера нужно указать адрес и порт прокси-сервера, на котором работает WebScarab. В качестве http-прокси указывается «localhost», а порт — «8008» (значения по умолчанию). Также важно проверить, чтобы в «Исключениях» не был прописан «localhost», иначе перенаправление работать не будет.

Плагины WebScarab

Summary

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

  • Methods — тип запроса/ответа
  • Status — код ответа сервера
  • Posible Injection — потенциальная уязвимость к инъекции
  • Set-Cookie — наличие установки cookie
  • Comments — обнаруженные комментарии в ответе
  • Scripts — наличие скриптов

В нижней части — таблица всех зафиксированных запросов с уникальным ID, временем, адресом источника, путём к ресурсу, переданными параметрами, источником создания, а также признаками уязвимости к XSS, CRLF-инъекциям, настройками и содержимым cookies.

Двойной клик по запросу открывает окно для просмотра и модификации выбранной сессии. По правому клику мыши доступны функции отправки запроса в Fuzzer или просмотра скриптов и комментариев в данной цепочке.

Manual request

Позволяет просматривать, изменять или создавать новые HTTP-запросы, перехваченные или сгенерированные WebScarab. В области «Previous Requests» выбирается нужный запрос, после чего появляется его содержимое в двух режимах: разобранном и «сырым» виде. Оба варианта можно редактировать.

При нажатии на «Fetch Response» отображается ответ сервера — также в анализируемом или в сыром виде. Для представления результатов поддерживается просмотр в HTML, XML, текстовом и шестнадцатеричном форматах.

Кнопки «Get Cookies» и «Update CookieJar» позволяют брать актуальные cookie либо добавлять обнаруженные в ответе cookie в общую базу Shared Cookies.

Spider

Модуль Spider автоматически сканирует структуру сайта и ищет ссылки, которые ещё не были посещены. Все найденные ссылки отображаются в виде дерева для дальнейшего анализа. Интерфейс позволяет фильтровать ссылки с помощью списка разрешённых (Allowed Domains) и запрещённых (Forbidden Paths) регулярных выражений.

Дерево ссылок можно вызывать полностью («Fetch Tree») или отдельными фрагментами («Fetch Selection»). Полученные ответы добавляются в панель Summary для последующей работы.

XSS/CRLF

Плагин для тестирования уязвимостей к XSS- и CRLF-атакам. В верхней таблице перечислены запросы, у которых обнаружены такие уязвимости, с подробностями, аналогичными панели Summary.

Через «Edit Test Strings» открывается окно, где можно задать тестовые строки для XSS и CRLF отдельно. Кнопка «Check» инициирует отправку тестовых запросов; если тестовая строка будет обнаружена в ответе, запрос признаётся уязвимым и переносится в нижнюю часть таблицы.

В версии 20080814-0000 работа плагина нестабильна: возможна некорректная оценка уязвимости и зависание программы.

Session ID Analysis

Инструмент анализа предсказуемости генерации session-идентификаторов, предназначен для оценки сложности угадывания следующего значения Session ID злоумышленником. Анализ строится на сборе набора сессионных идентификаторов и сравнении их характеристик.

Плагин состоит из трёх частей: Collection (сбор), Analysis (анализ), Visualisation (визуализация). Сначала выбирается запрос для сбора Session ID, после проверки и задания количества проб Sample, кнопка «Fetch» собирает нужное количество значений.

В разделе Analysis отображается подробная информация о собранных идентификаторах: дата создания, значения, числовой эквивалент, разница между соседними ID, минимальное и максимальное значение, диапазон. Данные можно очистить («Clear») или экспортировать в текстовый файл («Export»).

Раздел Visualisation строит график, где по оси X — время создания, по оси Y — значение Session ID, что позволяет оценить характер генерации идентификаторов.

Fuzzer

Плагин для массового тестирования параметров приложений на различные входные данные (фаззинг). Позволяет использовать большое число вариантов ввода из файла, что ускоряет анализ проблем с XSS, SQL-инъекция, перехватом Session ID и др.

В верхней части панели можно создать новый HTTP-запрос вручную или подтянуть существующий из панели Summary. Далее, в таблице Parameters указываются параметры для тестирования, их местоположение (cookie, query, path и др.), имя, тип (только строка), значение по умолчанию, приоритет сочетаний и источник данных (RegEx или файл). Источники можно добавлять, настраивая уникальные наборы тестовых данных.

При выборе запроса и корректной настройке параметров/источников процесс фаззинга запускается кнопкой «Start». Плагин формирует и отправляет запросы на сервер, а ответы фиксируются в нижней таблице панели для анализа. Процесс можно прекратить нажатием «Stop».

Fragments

Этот плагин пассивно анализирует HTML-ответы на наличие комментариев и скриптов с возможностью сортировки и дальнейшего изучения.

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

Compare

Плагин предназначен для сравнения содержимого любых двух HTTP-ответов, визуализируя различия цветом: белый обозначает совпадающие фрагменты, зелёный — элементы, присутствующие только в одной из версий, жёлтый — различия внутри совпадающих фрагментов. В верхней части окна выбор ответа для сравнения производится из списка; ниже — непосредственно второй ответ для сопоставления. Сравниваемые версии отображаются в двух окнах параллельно[1].

Примечания