SPIKE и BURP для реального использования компьютерной безопасности (часть 3)

Опубликовано: 11 Апреля, 2023

  • SPIKE и BURP для реального использования компьютерной безопасности (Часть 1)
  • SPIKE и BURP для реального использования компьютерной безопасности (Часть 2)

В рамках этой статьи мы воспользуемся всем, о чем я написал, и применим к реальному сценарию. В частности, я подумал, что игра с полем веб-браузера Firefox может привести к некоторым интересным результатам. Читайте дальше и следите за мной, пока я развлекаюсь с HTTP-прокси!

Спайк и реальный мир

Недавно я много писал о HTTP-прокси, их использовании и, в частности, о HTTP-прокси SPIKE. В дополнение к SPIKE я также напишу о пакете BURP в ближайшем будущем, чтобы завершить серию HTTP-прокси. Всегда рекомендуется попробовать взломать веб-приложение с помощью нескольких разных прокси-серверов, так как ваши результаты могут отличаться. Вот почему я посвящу статью настройке и использованию пакета BURP. Вы помните, что использование HTTP-прокси — это тестирование веб-приложений и попытка обойти меры безопасности. Будь то SQL-инъекция из-за плохой фильтрации на стороне сервера или искажение самого протокола HTTP, прокси-сервер HTTP сделает все это.

Я считаю, что всегда полезно попытаться извлечь уроки и, если возможно, применить их к реальному миру. Только что изучив новую теорию, ее всегда следует проверять в как можно более реалистичной среде. С этой целью мы завершим наш взгляд на SPIKE реальным случаем тестирования веб-приложений. Между прочим, в прошлом году я выполнял лабораторную работу, когда случайно заметил, что в запросе веб-клиента Firefox было что-то довольно странное. См. часть пакета, выделенную жирным шрифтом и подчеркнутую ниже.

10:35:36.275250 IP (tos 0x0, ttl 128, id 52101, смещение 0, флаги [DF], протокол: TCP (6), длина: 493) 192.168.1.100.2502 > 192.168.1.107.80: P, cksum 0x6d9b (верно), 468268059:468268512(453) акк 3224989207 победа 65535
0x0000: 4500 01ed cb85 4000 8006 a965 c0a8 0164 E…[электронная почта защищена]….e…d
0x0010: c0a8 016b 09c6 0050 1be9 341b c039 6e17 …k…P..4..9n.
0x0020: 5018 ffff 6d9b 0000 4745 5420 2f20 4854 P…m…GET./.HT
0x0030: 5450 2f31 2e31 0d0a 486f 7374 3a20 3139 TP/1.1..Хост:.19
0x0040: 322e 3136 382e 312e 3130 370d 0a55 7365 2.168.1.107..Использовать
0x0050: 722d 4167 656e 743a 204d 6f7a 696c 6c61 r-Агент:.Mozilla
0x0060: 2f34 2e30 2028 636f 6d70 6174 6962 6c65/4.0.(совместимо
0x0070: 3b20 4d53 4945 2035 2e30 3b20 5769 6e64 ;.MSIE.5.0;.Ветер
0x0080: 6f77 7320 4e54 3b20 426f 6229 0d0a 4163 ows.NT;.Bob)..Ac
0x0090: 6365 7074 3a20 7465 7874 2f78 6d6c 2c61 cept:.text/xml,a
0x00a0: 7070 6c69 6361 7469 6f6e 2f78 6d6c 2c61 pplication/xml,a
0x00b0: 7070 6c69 6361 7469 6f6e 2f78 6874 6d6c pplication/xhtml
0x00c0: 2b78 6d6c 2c74 6578 742f 6874 6d6c 3b71 +xml,текст/html; д
0x00d0: 3d30 2e39 2c74 6578 742f 706c 6169 6e3b = 0,9, текст/обычный;
0x00e0: 713d 302e 382c 696d 6167 652f 706e 672c q=0.8,изображение/png,
0x00f0: 2a2f 2a3b 713d 302e 350d 0a41 6363 6570 */*;q=0,5.. Принять
0x0100: 742d 4c61 6e67 7561 6765 3a20 656e 2d75 t-Язык:.en-u
0x0110: 732c 656e 3b71 3d30 2e35 0d0a 4163 6365 s,en;q=0.5..Acce













Мне повезло в том, что я нюхал собственное соединение во время тестирования и заметил выделенную выше часть. Это было довольно странно, как мне показалось, поскольку я никогда не видел этих «q=……». значения раньше. Спустя некоторое время я смог отследить, что все это означало. Оказывается, это был просто способ Firefox указать предпочтение веб-клиента для определенных типов пантомимы. «q» был просто взвешенным символом от 0 до 1, который использовался, чтобы показать предпочтение определенного типа пантомимы. Например, «q=0,9» будет означать, что определенный тип пантомимы является наиболее предпочтительным типом. И наоборот, «q = 0,1» будет указывать на наименее предпочтительный тип пантомимы.

Теперь все собирается вместе

Ну, я подумал, что этот способ передачи предпочтений пантомимы на самом деле довольно опрятный. Я связался со своим коллегой, который также занимался тестированием веб-приложений, чтобы опровергнуть это новое открытие. После нашей беседы было решено, что нужно провести некоторое тестирование. Нам обоим показалось любопытным, что значение «q» было взвешенным со значениями в диапазоне от вышеупомянутых 0,1 до 0,9. Что произойдет, если, например, нужно ввести довольно большое целочисленное значение или, если на то пошло, большое отрицательное целое число в это поле веб-клиента HTTP? Хороший вопрос действительно мы думали! Имея это в виду, мы решили протестировать его на двух веб-серверах, чтобы оценить их реакцию на какой-то неожиданный стимул.

Первым в моем хит-параде был веб-сервер IIS 5 для тестирования. Установка веб-сервера IIS уже рассматривалась мной ранее, поэтому я не буду повторяться. А теперь приступим к безумию HTTP-прокси! Проведение такого рода экспериментов — это именно то, что вы должны пытаться делать. Это позволяет вам тестировать различные хакерские инструменты, а также полирует ваши знания сетевых протоколов. Вы можете увидеть на скриншоте ниже значения «q», которые Firefox отправил на веб-сервер IIS 5.

Изображение 25573
фигура 1

Что произойдет, если я повторно отправлю это на веб-сервер IIS 5 с некоторыми очень большими целочисленными значениями в качестве веса «q»? Чтобы ввести большое целочисленное значение, просто щелкните соответствующее поле, как указано на скриншоте выше, и просто введите длинную серию чисел. Давайте посмотрим на ответ на стороне веб-сервера IIS 5, когда он получил это неожиданное поле. Пожалуйста, просмотрите захват пакета ниже.

10:35:36.290875 IP (tos 0x0, ttl 128, id 140, смещение 0, флаги [DF], proto: TCP (6), длина: 1464) 192.168.1.107.80 > 192.168.1.100.2502: P, cksum 0x6835 (верно), 3224989207:3224990631(1424) акк 468268512 победа 63787
0x0000: 4500 05b8 008c 4000 8006 7094 c0a8 016b E…[email protected]…p….k
0x0010: c0a8 0164 0050 09c6 c039 6e17 1be9 35e0 …dP…9n…5.
0x0020: 5018 f92b 6835 0000 4854 5450 2f31 2e31 P..+h5..HTTP/1.1
0x0030: 2032 3030 204f 4b0d 0a53 6572 7665 723a.200.OK..Сервер:
0x0040: 204d 6963 726f 736f 6674 2d49 4953 2f35.Microsoft-IIS/5
0x0050: 2e30 0d0a 4461 7465 3a20 5375 6e2c 2032.0..Date:.Sun,.2
0x0060: 3620 4d61 7220 3230 3036 2031 353a 3335 6.Мар.2006.15:35
0x0070: 3a33 3520 474d 540d 0a43 6f6e 7465 6e74:35.GMT..Содержимое
0x0080: 2d4c 656e 6774 683a 2031 3237 300d 0a43 -Длина:.1270..C
0x0090: 6f6e 7465 6e74 2d54 7970 653a 2074 6578 тип контента:.tex
0x00a0: 742f 6874 6d6c 0d0a 4361 6368 652d 636f t/html..Cache-co










В приведенном выше пакете отмечен код состояния «200», отправленный веб-сервером. Из-за этого кода состояния мы знаем, что у веб-сервера не было проблем с анализом большого целочисленного значения из веб-клиента Firefox. Таким образом, мы видим, что IIS 5 правильно анализирует как обычный ввод, так и ненормальный ввод из веб-клиента Firefox. Дерьмо! Я надеялся получить что-то более интересное от веб-сервера. Возможно, даже вызвали состояние DoS (отказ в обслуживании).

Давайте попробуем Apache прямо сейчас

Ну, я был немного разочарован тем, что мне не удалось спровоцировать неожиданный ответ от IIS 5. Я продолжал некоторое время с различными положительными и отрицательными целыми числами с теми же результатами. У IIS 5 не было проблем ни с одним из них. Поэтому я решил в следующий раз попробовать это на Apache, чтобы посмотреть, как он будет обрабатывать некоторые необычные данные из Firefox. На скриншоте ниже видно, что я ввел большое целочисленное значение.

Изображение 25574
фигура 2

Что произойдет, если мы повторно отправим этот запрос с уже измененным полем «q»? Что ж, давайте посмотрим на пакеты ниже, которые показывают как повторно отправленный пакет, так и ответ веб-серверов Apache.

11:25:44.212750 IP (tos 0x0, ttl 128, id 59389, смещение 0, флаги [DF], протокол: TCP (6), длина: 388) 192.168.1.100.2859 > 192.168.1.104.80: P, cksum 0x12e1 (правильно), 228302848:228303196(348) акк 892392516 победа 65535
0x0000: 4500 0184 e7fd 4000 8006 8d59 c0a8 0164 E…[email protected]….Y…d
0x0010: c0a8 0168 0b2b 0050 0d9b a000 3530 d444 …h.+.P….50.D
0x0020: 5018 ffff 12e1 0000 4745 5420 2f69 6d67 P…….GET./img
0x0030: 2f62 7269 646f 6e5f 6963 6f6e 2e70 6e67 /bridon_icon.png
0x0040: 2048 5454 502f 312e 310d 0a48 6f73 743a.HTTP/1.1..Хост:
0x0050: 2031 3932 2e31 3638 2e31 2e31 3034 0d0a.192.168.1.104..
0x0060: 5573 6572 2d41 6765 6e74 3a20 4d6f 7a69 Агент пользователя:.Mozi
0x0070: 6c6c 612f 342e 3020 2863 6f6d 7061 7469 lla/4.0.(compati
0x0080: 626c 653b 204d 5349 4520 352e 303b 2057 ble;.MSIE.5.0;.W
0x0090: 696e 646f 7773 204e 543b 2042 6f62 290d indows.NT;.Bob).
0x00a0: 0a41 6363 6570 743a 2069 6d61 6765 2f70.Принять:.image/p
0x00b0: 6e67 2c2a 2f2a 3b71 3d30 2e35 0d0a 4163 нг,*/*;q=0.5..Ac
0x00c0: 6365 7074 2d4c 616e 6775 6167 653a 2065 cept-Language:.e
0x00d0: 6e2d 7573 2c65 6e3b 713d 302e 350d 0a41 n-us,en;q=0.5..A
0x00e0: 6363 6570 742d 456e 636f 6469 6e67 3a20 ccept-Encoding:.
0x00f0: 677a 6970 2c20 6465 666c 6174 650d 0a41 gzip,.deflate..A
0x0100: 6363 6570 742d 4368 6172 7365 743a 2049 ccept-Charset:.I
0x0110: 534f 2d38 3835 392d 312c 7574 662d 383b SO-8859-1,utf-8;
0x0120: 713d 3131 3131 3131 3131 3131 3131 2e30 q=111111111111.0
0x0130: 2c2a 3b71 3d30 2e37 0d0a 4b65 6570 2d41,*;q=0.7..Keep-A
0x0140: 6c69 7665 3a20 3330 300d 0a43 6f6e 6e65 live:.300..Conne
0x0150: 6374 696f 6e3a 206b 6565 702d 616c 6976 действие:.keep-aliv
0x0160: 650d 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d e..————-
0x0170: 2d2d 3a20 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d –:.————
0x0180: 0d0a 0d0a ….























Мы видим в приведенном выше пакете, что подчеркнутая и выделенная жирным шрифтом часть — это наша повторная передача модифицированного взвешенного значения «q». Давайте посмотрим ниже на реакцию веб-серверов Apache на это.

11:25:44.212750 IP (tos 0x0, ttl 128, id 248, смещение 0, флаги [DF], proto: TCP (6), длина: 910) 192.168.1.104.80 > 192.168.1.100.2859: P, cksum 0xb753 (верно), 892392516:892393386(870) ack 228303196 win 63892
0x0000: 4500 038e 00f8 4000 8006 7255 c0a8 0168 E…[электронная почта защищена]…rU…h
0x0010: c0a8 0164 0050 0b2b 3530 d444 0d9b a15c …dP+50.D…
0x0020: 5018 f994 b753 0000 4854 5450 2f31 2e31 P….S. . HTTP/1.1
0x0030: 2032 3030 204f 4b0d 0a44 6174 653a 2053 . 200.ОК..Дата:.С
0x0040: 756e 2c20 3236 204d 6172 2032 3030 3620 un,.26.Mar.2006.
0x0050: 3136 3a32 343a 3336 2047 4d54 0d0a 5365 16:24:36.GMT..Se
0x0060: 7276 6572 3a20 4170 6163 6865 2f32 2e30 rver:.Apache/2.0
0x0070: 2e35 3420 2857 696e 3332 290d 0a4c 6173.54.(Win32)..Las
0x0080: 742d 4d6f 6469 6669 6564 3a20 5361 742c t-Modified:.Sat,
0x0090: 2032 3020 4175 6720 3230 3035 2032 303a.20.Aug.2005.20:
0x00a0: 3235 3a35 3020 474d 540d 0a45 5461 673a 25:50.GMT..ETag:
0x00b0: 2022 3232 3239 2d32 3439 2d34 3039 3636.”2229-249-40966
0x00c0: 3163 6422 0d0a 4163 6365 7074 2d52 616e 1cd»..Accept-Ran
0x00d0: 6765 733a 2062 7974 6573 0d0a 436f 6e74 ges:.bytes..Cont
0x00e0: 656e 742d 4c65 6e67 7468 3a20 3538 350d ent-Длина:.585.
0x00f0: 0a4b 6565 702d 416c 6976 653a 2074 696d.Keep-Alive:.tim
0x0100: 656f 7574 3d31 352c 206d 6178 3d31 3030 eout=15,.max=100
0x0110: 0d0a 436f 6e6e 6563 7469 6f6e 3a20 4b65..Connection:.Ke
0x0120: 6570 2d41 6c69 7665 0d0a 436f 6e74 656e ep-Alive..Conten
0x0130: 742d 5479 7065 3a20 696d 6167 652f 706e t-Type:.image/pn
0x0140: 670d 0a0d 0a89 504e 470d 0a1a 0a00 0000 г…..PNG…….
0x0150: 0d49 4844 5200 0000 1000 0000 1008




















Дерьмо! И снова веб-сервер не был затронут неожиданным стимулом. Об этом свидетельствует еще раз выделенная жирным шрифтом и подчеркнутая часть в пакете выше. Выдавая код состояния HTTP 200, веб-сервер сообщает нам, что у него не было проблем с обработкой запроса веб-клиента.

Заворачивать

Мы увидели, как мы можем использовать HTTP-прокси SPIKE в реальном мире. Этот реальный пример — лишь одно из применений такого инструмента, как прокси-сервер HTTP. Это позволит вам выполнить большой объем тестирования веб-приложений, и все это в относительно интуитивно понятной настройке, например: SPIKE GUI (графический пользовательский интерфейс). Теперь, когда вы увидели, как легко можно тестировать такие вещи, как веб-серверы, вы можете перейти к таким вещам, как внедрение SQL, помимо прочего. HTTP-прокси — очень мощный инструмент, особенно в руках того, кто знает их протоколы. Я искренне надеюсь, что вам понравилась эта статья, и, как всегда, буду рад вашим отзывам. До следующего раза!

  • SPIKE и BURP для реального использования компьютерной безопасности (Часть 1)
  • SPIKE и BURP для реального использования компьютерной безопасности (Часть 2)
  • SPIKE и BURP для реального использования компьютерной безопасности (часть 4)