Як скинути цілі запити HTTP за допомогою apache


27

Чи можливо скинути цілі запити HTTP за допомогою apache? Мені потрібно відслідковувати всі заголовки HTTP вхідних запитів. Як це зробити?

Відповіді:


30

Я думаю, що те, що ви хочете замість Apache, може бути аналізатором пакетів , також відомим як снайпер пакету. Напевно, два найпопулярніших - це TCPDump та Wireshark , обидва вони безкоштовні та мають версії для операційних систем Windows та * nix. Вони покажуть вам увесь трафік, що надходить на інтерфейс, а не лише те, що бачить Apache. Але ви можете використовувати фільтри для обмеження певного порту, наприклад 80 для http.

tcpdump:
Наступна команда, запущена з сервера, покаже всі пакети, призначені для порту 80:

sudo tcpdump -s 0 -X 'tcp dst port 80'

Перемикач капіталу X скидає корисний вантаж у шестигранному та ASCII. Перемикач s 0 означає отримати весь пакет. 'tcp dst port 80' означає фільтрувати та показувати лише пакети, призначені для порту 80, у заголовку tcp.

Wireshark:
Для більш зручної для користувача версії, якщо у вас працює графічний інтерфейс, розгляньте wireshark (формально відомий як ефірний).


1
Дякую, Кайл, як я можу отримати інформацію про заголовки HTTP з вихідного сигналу tcpdump?
Олексій

1
Алекс: Ви знаєте що, Wireshark зробить це набагато простіше. Ви можете використовувати -r ім'я файлу, щоб зберегти дамп у файл, а потім відкрити його за допомогою проводки на робочому столі.
Кайл Брандт

О, і киньте "dst", якщо ви хочете відповіді.
Кайл Брандт

1
-Aлише для тексту (без шістнадцяткового дампа):sudo tcpdump -A -s 0 'tcp dst port 80'
Brent Faust

12

можливо скидання печива ? інакше - подивіться на mod_dumpio .


1
mod_dumpio звучить круто! Мабуть, простіший спосіб скинути інформацію, якщо використовувати SSL (хоча проводка також може це зробити). +1 :-)
Кайл Брандт

8

Нюхання базових пакетів легко з ngrep гібридом tcpdump та grep. У певних сценаріях, якщо ви бажаєте побачити, як веб-браузери спілкуються з веб-серверами, та перевірити заголовки HTTP.
У цьому прикладі запустіть ngrep на веб-сервері так:

$ ngrep port 80

Ви також можете відфільтрувати запит http до запиту "GET /" до порту 80 за допомогою:

$ ngrep -q '^GET .* HTTP/1.[01]'

З боку клієнта, є корисний інструмент під назвою Tamper Data - це розширення Firefox, яке дає вам можливість переглядати, записувати та навіть змінювати вихідні HTTP-запити.
Ви можете знайти більше інформації тут


7

Замість використання tcpdump або wireshark використовуйте tcpflow. Це крапля заміни tcpdump, але створює файл для кожної сторони кожного з'єднання, тому вам не доведеться самостійно намагатися розшифрувати потік.


Дякую за це Я використовую mod_negotiate і мій curl () зібрав файли .bak на відміну від .php, а браузери знайшли .php. Твердий горіх для розтріскування.
mckenzm

0

Apache має вбудовану функціональність; просто підвищити рівень журналу до trace7або trace8:

LogLevel trace8

Зауважте, що це скидає багато даних. Вас попередили

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.