Во второй части статьи мы рассмотрим вопросы работы HTTP-прокси и узнаем, как использовать это полезное средство.
Если вы хотите прочитать другие части из этой серии статей, то, пожалуйста, перейдите по ссылкам:
В первой части статьи, посвященной использованию HTTP-прокси, мы обсудили общие вопросы, такие как польза HTTP-прокси и необходимость работы программы прослушивания пакетов. Теперь мы займемся непосредственно работой HTTP-прокси и узнаем, как использовать это полезное средство.
HTTP-прокси Часть II
Начнем! В первой части мы обсудили общие вопросы, а теперь пора заняться взломом web-приложений. В начале я хочу в двух словах рассказать о тестовых условиях, которые я буду использовать в статье. Я использую web-сервер Apache с установленным на нем web-сайтом младшей версии. Для сервера Apache я не использую никакой особой защиты. На Windows XP работает только SPIKE HTTP-прокси, и все это работает внутри системы виртуальных машин VMware. Запускается SPIKE с помощью файла “runme.bat”, который находится в папке установки программы. После запуска я ввожу IP-адрес web-сервера Apache в адресную строку и получаю то, что вы видите на Рисунке 1.
Рисунок 1
Не забудьте, что до запуска SPIKE в web-клиенте нужно произвести небольшие изменения. Об этом я рассказывал в первой части. Теперь, при открытом web-сайте (Рисунок 1), посмотрим на SPIKE. Для этого в адресной строке введите http://SPIKE/. Вы должны увидеть то, что изображено на Рисунке 2.
Рисунок 2
Когда я писал статью, я обнаружил нечто, что, возможно, является ошибкой SPIKE. Старые сайты, которые я проверял SPIKE-прокси, хранились в памяти UI (User Interface – пользовательский интерфейс). Это происходило и после того, как я запускал файл “cleanup.bat”, который, по идее, должен удалять их. В любом случае, если вы хотите получить чистый интерфейс наподобие того, что на Рисунке 2, откройте следующую папку:
c:\SPIKEProxy\spkproxy\spikeProxyUI>
Теперь просто удалите папки вручную таким образом:
rmdir /S /Q папки_для_удаления
Оказалось, что это не ошибка, а специальная функция, предназначенная для того, чтобы вы могли проводить и автономный анализ. Если все, что описано выше, выполнено, программа очищена, и таким образом вас не будут вводить в заблуждение старые данные, с которыми вы, возможно, работали раньше. Вернемся к работе SPIKE. В окне, пример которого изображен на Рисунке 2, щелкните по ссылке “Delve into Dir”. Вы увидите три папки. Эти папки и анализировала программа SPIKE после получения страницы web-сайта. Рассмотрим папку “img”, которую можно найти по указанной выше ссылке, т.е. “Delve into Dir”. Вы, вероятно, уже заметили, что мы не слишком углубляемся в полученные после доступа к web-сайту web-сервера Apache данные.
Подробное изучение
После нажатия по ссылке на папку “img” вы увидите два файла gif и один файл jpeg. Теперь щелкните по самому верхнему (bg3.gif) снова через ссылку “Delve into Dir”. После этого у вас появились дополнительные варианты.
Рисунок 3
Теперь посмотрим на то, что я бы назвал ядром HTTP-прокси. У вас есть возможность переписать запросы и снова запустить их. Но все по порядку. Щелкните по ссылке “Print Request Info” и посмотрите, что посылает браузер при соединении с домашней страницей web-сервера.
Рисунок 4
На Рисунке 4 мы видим все то, что было отослано web-клиентом web-серверу. В начале мы видим IP-адрес и порт сервера. SSL не используется, и это видно из HTTP-запроса GET и того, что было запрошено. В нашем примере это файл “bg3.gif”, а затем IP-адрес узла. Далее идет строка User-Agent, указывающая на тип браузера клиента. Остальная информация достаточно понятна. Если вы не понимаете то, что видите, предлагаю прочитать статью об HTTP . Нам интересна одна позиция, и я заострю на ней ваше внимание. Я говорю о поле “If-None-Match” (см. Рисунок 4).
Значением поля является набор цифр и букв. Это то, что называется ETag, который работает с кэшированием. Это значение ETag генерируется сервером и применяется к его ресурсам, таким как gif-файлы и т.п. Если браузер, такой как мой, запрашивает что-либо, может оказаться, что информация уже хранится в его кэше. У меня в кэше действительно была версия этого файла, вот почему сервер ответил кодом состояния HTTP 304 Not Modified (Не изменен). Это значит, что данный gif-файл в кэше все еще тот же самый, что и на web-сервере, и серверу не нужно еще раз посылать его, поскольку файл можно взять из кэша моего компьютера. При запуске SPIKE через файл “runme.bat” вы увидите в окне DOS следующую информацию:
Response Header:
HTTP/1.1 304 Not Modified
Date: Sun, 19 Feb 2006 16:39:55 GMT
Server: Apache/2.0.54 (Win32)
Connection: Keep-Alive
Keep-Alive: timeout=15, max=98
ETag: «222a-ab-4096dbdf»
Теперь откатитесь в браузере назад к трем папкам “img”, “css” и “_directory_”. Щелкните по папке “Delve into Dir” для папки “_directory_”. Затем нажмите “Print Request Info”. Вы увидите стандартный запрос для самой страницы. Проверим ссылку “rewrite request” (Переписать запрос). Это, как было сказано ранее, один из главных компонентов HTTP-прокси. Здесь вы можете изменить почти любой запрос к web-серверу.
Рисунок 5
Выполним изменения запросе GET, начав со страницы, изображенной на Рисунке 6.
Рисунок 6
Щелкните по ссылке “Delve into Dir”, затем “Rewrite Request”. В поле “Verb” измените “GET” на “HEAD”. Теперь перейдите к полю “Body args” и введите туда “having some fun”. Нажмите “Submit Query” (Выполнить запрос). Вы увидите, что SPIKE HTTP-прокси действительно переписал наш запрос. Превосходно! Вы приоткрыли завесу над безопасностью web-приложений. Остановимся пока на этом.
13:38:29.828125 IP (tos 0x0, ttl 128, id 6305, offset 0, flags [DF], proto: TCP
(6), length: 362) 192.168.1.108.1610 > 192.168.1.104.80: P, cksum 0xe1af (correct), 2856622211:2856622533(322) ack 3348334422 win 64240
0x0000: 4500 016a 18a1 4000 8006 5cc8 c0a8 016c E..j..@…\….l
0x0010: c0a8 0168 064a 0050 aa44 9883 c793 8756 …h.J.P.D…..V
0x0020: 5018 faf0 e1af 0000 4845 4144 202f 2048 P…….HEAD./.H
0x0030: 5454 502f 312e 310d 0a48 6f73 743a 2031 TTP/1.1..Host:.1
0x0040: 3932 2e31 3638 2e31 2e31 3034 0d0a 5573 92.168.1.104..Us
0x0050: 6572 2d41 6765 6e74 3a20 4d6f 7a69 6c6c er-Agent:.Mozill
0x0060: 612f 342e 3020 2863 6f6d 7061 7469 626c a/4.0.(compatibl
0x0070: 653b 204d 5349 4520 352e 303b 2057 696e e;.MSIE.5.0;.Win
0x0080: 646f 7773 204e 543b 2042 6f62 290d 0a41 dows.NT;.Bob)..A
0x0090: 6363 6570 743a 2069 6d61 6765 2f67 6966 ccept:.image/gif
0x00a0: 2c20 696d 6167 652f 782d 7862 6974 6d61 ,.image/x-xbitma
0x00b0: 702c 2069 6d61 6765 2f6a 7065 672c 2069 p,.image/jpeg,.i
0x00c0: 6d61 6765 2f70 6a70 6567 2c20 2a2f 2a0d mage/pjpeg,.*/*.
0x00d0: 0a41 6363 6570 742d 4c61 6e67 7561 6765 .Accept-Language
0x00e0: 3a20 656e 2d75 730d 0a43 6f6e 6e65 6374 :.en-us..Connect
0x00f0: 696f 6e3a 204b 6565 702d 416c 6976 650d ion:.Keep-Alive.
0x0100: 0a49 662d 4d6f 6469 6669 6564 2d53 696e .If-Modified-Sin
0x0110: 6365 3a20 5361 742c 2032 3020 4175 6720 ce:.Sat,.20.Aug.
0x0120: 3230 3035 2032 303a 3235 3a35 3020 474d 2005.20:25:50.GM
0x0130: 540d 0a49 662d 4e6f 6e65 2d4d 6174 6368 T..If-None-Match
0x0140: 3a20 0d0a 436f 6e74 656e 742d 4c65 6e67 :…Content-Leng
0x0150: 7468 3a20 3136 0d0a 0d0a 6861 7669 6e67 th:.16….having
0x0160: 2b73 6f6d 652b 6675 6e3d +some+fun=
В ближайшем будущем появятся новые статьи о SPIKE и BURP. В них я покажу примеры из жизни, как с помощью этих HTTP-прокси взламывать web-приложения. И помните, я всегда рад услышать ваши комментарии. До встречи!
Источник www.windowsecurity.com
Tags: apache, proxy, Windows XP