Опубликован: 20.02.2007 | Уровень: специалист | Доступ: платный
Лекция 8:

Средства взлома Web-приложений Hacking Tools

Проверка приложений

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

Achilles

В соответствии с названием, Achilles помогает протестировать Web-приложение, работая в режиме прокси с кнопкой "пауза". Обычный прокси располагается между Web-броузером и Web-сервером, незаметно перенаправляя запросы и ответы между ними. Achilles работает точно так же, но он добавляет возможность, которая позволяет вам модифицировать содержимое налету. Achilles позволяет манипулировать значениями cookie, запросами POST, скрытыми полями и всеми другими аспектами HTTP-транзакции - и все это поверх SSL.

Реализация

Поскольку это работа прокси, Achilles необходимо сначала настроить на прослушивание порта и перевести в режим "intercept". На рис. 8.7 показаны основные моменты конфигурации для запуска Achilles в режиме прокси. Щелкнув на кнопке "пуск" (треугольник), можно запустить прокси, а щелкнув на кнопке "стоп" (квадратик) остановить его - в точности, как при управлении звукозаписывающим устройством.

Основные настройки прокси для Achilles

Рис. 8.7. Основные настройки прокси для Achilles

Хорошей мыслью будет оставить задействованным параметр Ignore .jpg/.gif. Изменение файлов изображений редко используется для обхода системы безопасности Web-приложения, а число запросов от обычной Web-страницы раздражающе велико.

Затем настройте свой Web-броузер для работы через IP-адрес прокси (если это тот же компьютер 127.0.0.1) и соответствующий порт (5000 по умолчанию), который прослушивает Achilles. Обычно для этого Achilles просто запускается на вашей локальной машине. Любой Web-броузер, который поддерживает HTTP-прокси, от Lynx до Galeon, могут использовать Achilles. Ограничения для Windows-платформы состоит в том, что Achilles поставляется в виде исполняемого модуля Win32.

В режиме перехвата вы можете просматривать Web-сайт или несколько Web-сайтов, ничего не замечая. Параметр Log To File позволяет сохранять результаты сессии в файл. Это подходит для исследования Web-приложения. Журнал содержит каждую ссылку, которую вы посетили, включая вспомогательные файлы, такие как JavaScript, (*.js) и другие включаемые файлы (*.inc), которые в обычном режиме не видны в URL. Другое преимущество состоит в том, что у вас фактически есть копия HTML-страниц Web-сайта. Эти тексты могут содержать скрытые поля форм, значения cookie, переменные управления сессией и другую информацию о приложении. Приемы анализа Web-приложений лежат несколько в стороне от темы этой лекции, но для выполнения такой работы совершенно необходимо иметь Achilles.

В режиме активного перехвата вы можете видеть запросы, порождаемые броузером (Intercept Client Data), и ответы, посылаемые сервером (Intercept Server Data (text)). Перехват клиентской информации позволяет вам манипулировать GET- и POST- запросами и значениями, передаваемыми с переменными cookie. Эта возможность используется для обхода схем аутентификации и авторизации, и чтобы выдавать себя за другого пользователя. Текстовое окно Achilles представляет собой простой текстовый редактор.

Использование Achilles в таком виде, возможно, выглядит несколько абстрактно. Эта программа относится к категории, о которой говорят "лучше один раз увидеть, чем сто раз услышать". Запустите Achilles, измените настройки прокси для своего броузера, убедитесь в том, что вы выбрали режим Intercept Client Data, и просмотрите ваш любимый Web-сайт. Вы будете удивлены тем, что происходит за сценой, не меньше, чем при проверке своего банковского счета.

Проблемы перехвата. Achilles перехватывает только текстовые данные. Сайт, который использует компоненты ActiveX, также известные как COM-объекты (Component Object Model) или CAB-файлы (cabinet), сложнее для перехвата, поскольку такие файлы передаются как двоичные данные, которые Achilles игнорирует. Achilles продолжает поддерживать корректное HTTP-соединение, но вы не можете манипулировать данными. Другие двоичные объекты: загружаемые ZIP- или PDF-файлы, также будут транслированы, но не будут показаны в текстовом окне.

Web-сайты, которые используют SSL, зачастую порождают ошибки при использовании Achilles. Проблемный сайт с 20 объектами на странице (такими как изображения, таблицы стилей, файлы JavaScript и HTML) могут порождать 20 ошибок вида "Client failed SSL connection". Это не слишком большая беда, но это означает, что вам придется 20 раз нажать OK, чтобы закрыть окно сообщения об ошибке.

Некоторые сайты приводят к неожиданному "падению" Achilles. Не слишком хорошее правило - просматривать сайты, чтобы определить, какой из них приведет к нарушениям в работе программы. Можем рекомендовать зайти на сайт, использующий прокси, а затем запустить прокси и изменить установки броузера, как только вы дойдете до той части приложения, которую следует проверять. К сожалению, этот прием не срабатывает по отношению к сайтам, которые используют строгий контроль за сессией. Achilles поддерживает HTTP (базовую аутентификацию), а Web-приложения, которые используют NTLM Authentication (поддерживаемую IIS), не поддерживают работу через Achilles.

WebSleuth

WebSleuth помещает функциональность прокси непосредственно в броузер. Программа представляет собой набор процедур на Visual Basic, работающих вокруг Internet Explorer. Очевидно, что это привязывает вас к платформе WIN32, но утилита стоит того. Она позволяет провести пошаговый просмотр сайта, одновременно проверяя переменные cookies и HTML-код, делая по пути некоторые заметки.

Реализация

На рис. 8.8 представлен внешний вид интерфейса WebSleuth, на котором доступно несколько параметров для настройки. Рельефные кнопки Go, Back, Stop, Fwrd и Edit Source вызываются щелчком левой кнопкой мыши. Правая кнопка мыши отвечает за появление меню для каждой из плоских кнопок Properties, Toolbox, Plugins и Favorites.

Основные настройки прокси для Achilles

увеличить изображение
Рис. 8.8. Основные настройки прокси для Achilles

У кнопки меню Toolbox те же самые функции. Особой "фишкой" является функция HTML Transformations. Она удаляет скрипты, которые отключают многие программы проверки ввода, отображает скрытые поля, которые контролируют переменные сессии, сервера и клиента. Функция Generate Report создает великолепный список текущих переменных cookie, ссылок, строк запросов, форм, ссылок на скрипты, комментариев и META-тегов.

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

Финальные замечания. Функции Analyze, размещенные на закладке Options:, не работают поверх SSL. Эти функции открывают окно, которое содержит HTTP-запросы и их аргументы. В этот момент вы можете изменить данные для изменения запроса POST. К сожалению, это не работает!

Сергей Хлюкин
Сергей Хлюкин
Россия, Москва, Московский Государственный Открытый Университет, 2007
Игорь Касаткин
Игорь Касаткин
Россия, Москва