Автор работы: Пользователь скрыл имя, 02 Декабря 2013 в 09:30, доклад
Веб- приложения используют множество различных технологий для осуществления их функций. В этой главе содержится краткий учебник поключевым технологиям , что вы , вероятно, столкнутся при атаке веб-приложений. Рассмотрим протокол HTTP ,технологии , обычно используемые на
серверной и клиентской сторон, и схемы кодирования используются для представления данных в различных ситуациях. Эти технологии в целом легко понять , ипонимание их соответствующих функций имеет ключевое значение для выполнения эффективных атак против веб-приложений. Если вы уже знакомы с основными технологиями, используемыми в веб-приложениях , вы можете быстро пролистать эту главу, чтобы убедиться, что там нет ничего нового здесь для вас. Если вы все еще учимся , как веб- приложения будут работать , вам следует прочитать эту грунтовку перед продолжениемпоследующих главах на специфических уязвимостях .
Веб- приложения используют множество различных технологий для осуществления их функций. В этой главе содержится краткий учебник поключевым технологиям , что вы , вероятно, столкнутся при атаке веб-приложений. Рассмотрим протокол HTTP ,технологии , обычно используемые на
серверной и клиентской сторон,
и схемы кодирования
Полное руководство Дэвида Гурли и Брайан Totty (O'Reilly , 2002).
Протокол HTTP
Hypertext Transfer Protocol (HTTP) является основной протокол связи, используемый для доступа к World Wide Web и используется во всех современных веб- приложений. Это простой протокол, который был первоначально разработан для получения статического текстовые ресурсы , и с тех пор были расширены и использованы в различных
способы позволяющий применять его всложных распределенных приложений, которые в настоящее время
обычным делом.
HTTP использует на основе сообщений модель, в которойклиент посылает сообщение с запросом ,
и сервер возвращает ответное сообщение . Протокол по существу
соединения : хотя HTTP использует динамическую Протокол TCP в качестве транспортного
Механизм , каждый обмен запросом и ответом являетсяавтономной транзакции ,
и может использовать другое соединение TCP .
HTTP-запросы
Все HTTP сообщения (запросы и ответы ) состоят из одного или более заголовков
каждый на отдельной строке , а затемобязательная пустая строка , а затем
дополнительно тело сообщения . Типичный запрос HTTP заключается в следующем:
GET / книги / search.asp ? Q = wahh HTTP/1.1
Принимают: Изображение / GIF , изображение / xxbitmap , изображение / JPEG , изображение / pjpeg ,
Приложение / xshockwaveflash , применение / vnd.msexcel ,
Приложение / vnd.mspowerpoint , применение / MSWord , * / *
Referer : http://wahh-app.com/books/
Accept-Language : EN -RU , EN-US ; Q = 0,5
Accept-Encoding : GZIP , выкачивают
User-Agent: Mozilla/4.0 ( совместимый ; MSIE 7.0 ; Windows NT 5.1 )
Ведущий: wahh - app.com
Cookie: LANG = EN ; JSESSIONID = 0000tI8rk7joMx44S2Uu85nSWc_ : vsnlc502
В первой строке каждого запроса HTTP состоит из трех элементов , разделенных
пространств :
■ ■глагола с указанием метода HTTP. Наиболее часто используемый метод
это получить , функция которых состоит в полученииресурсов от веб-сервера . GET
запросы не имеют тело сообщения , так что нет никаких дополнительных данных после
пустую строку после заголовков сообщений .
■ ■ Запрашиваемая страница . URL функционирует как имя ресурса
запрашивается , вместе с дополнительной строкой запроса, содержащего
параметров , что клиент переходит к этому ресурсу. Строка запроса
указанном ? символ в URL , и в этом примере есть
единственный параметр с Q имя и значение wahh .
■ ■версии HTTP используются. Единственное HTTP версии в общем пользовании
в Интернете, 1.0 и 1.1 , и большинство браузеров использовать версию 1.1,
умолчанию. Есть несколько отличий между спецификациями этих
две версии , однако , единственная разница, которую вы , вероятно, столкнутся
при атаке веб-приложений является то, что в версии 1.1запрос хоста
заголовок является обязательным.
Некоторые другие достопримечательности в примере запроса являются:
■ ■Referer заголовок используется для указания URL , из которого запрос
возникла (например, потому, что пользователь нажал на ссылку на этой странице ) .
Обратите внимание, что этот заголовок был ошибкой в оригинальной спецификации HTTP,
и с ошибкой версия была сохранена до сих пор.
■ ■User-Agent заголовка используется для предоставления информации о
браузер или другое клиентское программное обеспечение, генерируется запрос. Обратите внимание, что
Mozilla префикса включает в себя большинство браузеров по историческим причинам -
это был User-Agent строку, используемую изначально доминирующую Net -
пейзаж браузера , и другие браузеры хотели утверждать на веб- сайтах, которые
они были совместимы с этим стандартом. Как и во многих из причуд
вычисления истории, он стал настолько установлено, что он по-прежнему сохраняется,
даже на текущей версии Internet Explorer , который сделал
запросить показано в примере .
■ ■ заголовок узла используется для указания имени хоста , который появился в
полный URL осуществляется доступ. Это необходимо, когда несколько веб-сайты
размещенных на одном сервере , так как URL отправлены в первой строке
Запрос правило, не содержит имя хоста. (См. главу 16 для
Дополнительную информацию о практически состоялась веб-сайты. )
■ ■Cookie заголовка используется для передачи дополнительных параметров, которые
сервер выдал клиенту ( более подробно описано ниже в данном
главы).
HTTP Ответы
Типичный ответ HTTP заключается в следующем:
HTTP/1.1 200 OK
Дата : Сб , 19 мая 2007 13:49:37 GMT
Сервер: IBM_HTTP_SERVER/1.3.26.2 Apache/1.3.26 (Unix)
Set-Cookie : отслеживание = tI8rk7joMx44S2Uu85nSWc
Pragma : No- кэша
Expires: Thu , 01 Jan 1970 00:00:00 GMT
Content-Type: текст / HTML , кодировка = ISO-8859- 1
Content-Language : EN-US
Content-Length: 24246
< DOCTYPE HTML PUBLIC " - / / W3C / / DTD HTML 4.01 Transitional / / EN ">
<html lang="en">
<head>
< мета HTTP -экв = " Content-Type" содержание = " текст / HTML ;
= кодировка ISO-8859- 1 ">
...
В первой строке каждого ответа HTTP состоит из трех элементов , разделенных
пространств :
■ ■версии HTTP используются.
■ ■цифровой код статуса указывающийрезультат запроса . 200
Наиболее распространенным кодом состояния , а это означает , что запрос был успешным и
запрошенный ресурс возвращается .
■ ■текстовым " Причина фразу " дальнейшее описывающие статус ответа .
Это может иметь любые значения и не используется для любой цели на текущий
браузеров.
Некоторые другие достопримечательности в предыдущем ответе , являются:
■ ■Сервер заголовок содержитбаннер с указанием программного обеспечения веб-сервера
используется, а иногда и другие детали, такие как установленные модули
исерверной операционной системы . Информация, содержащаяся в мае или
не может быть точным .
■ ■Set-Cookie заголовка выдает браузердальнейшего печенья ; эта воля
быть представлен еще в заголовке Cookie последующих запросах к этому
сервера.
■ ■Pragma заголовок инструктирует браузер не хранить ответ
в своем кэше , а также Expires заголовок указывает, что ответ
Содержание истек в прошлом, и так не должно быть в кэш. Эти инструкции
часто выдается, когда динамический контент возвращается , чтобы
убедиться, что браузеры получить свежую версию этого контента на последующее
случаев.
■ ■ Почти все HTTP ответы содержат тело сообщения после пустой
строку после заголовков иContent-Type заголовка указывает, что
Тело этого сообщения содержитHTML документа.
■ ■Content-Length заголовок указывает длину тела сообщения в
байтов.
Методы HTTP
Когда вы атакуете веб-приложений , вы будете иметь дело почти исключительно
с наиболее часто используемых методов : GET и POST. Есть некоторые
важные различия между этими методами, которые вы должны быть в курсе,
и которые могут повлиять на безопасностьприложения , если упускается из виду.
GET Метод предназначен для извлечения ресурсов. Он может быть использован для отправки
Параметры к запрошенному ресурсу в строке запроса URL. Это позволяет пользователям
добавить в закладки URL для динамического ресурса, который может быть повторно использован самостоятельно или
других пользователей , чтобы получить эквивалентную ресурса напоследующем случае (как и в
закладкой поисковый запрос ) . URL-адреса отображаются на экране , и вошли в систему
различных местах, таких какисторию браузера и доступа к веб- сервера журналов.
Они также передаются в заголовке Referer на другие сайты , когда внешние
Ссылки следуют. По этим причинам , строка запроса не должны использоваться для
передавать любую
POST метод предназначен для выполнения действий . С помощью этого метода
параметры запроса могут быть отправлены как в строке запроса URL и в теле
в сообщении. Хотя URL все еще может быть закладкой , все параметры
отправлен в теле сообщения , будут исключены из закладки. Эти параметры
также будут исключены из различных местах , в которых журналов URL, являются
поддерживается и из заголовка Referer . Поскольку метод POST
предназначен для выполнения действий , если пользователь нажимает кнопку Назадбраузера
вернуться к странице, которая была с помощью этого метода , браузер не будет
автоматически повторно послать запрос , но предупредит пользователя о том, что он собирается
делают, как показано на рисунке 3-1. Это позволяет предотвратить невольно выполнения
действия более одного раза. По этой причине , POST запросы всегда должны использоваться
когда действие выполняется.