Увійдіть до трафіку браузера HTTP та HTTPS, дешифруючи останні


14

Чи є спосіб, щоб я міг зберегти всі повідомлення HTTP та HTTPS-браузера (включаючи запит, відповідь, повні заголовки та тіло) у файли на своєму комп'ютері?

Зв'язки HTTPS повинні бути збережені розшифрованими.

В ідеалі я б шукав щось на зразок розширення для Firefox або Google Chrome.

Він повинен працювати в Linux.

Відповіді:


4

HAR - це архів HTTP, і це саме те, що ви хочете зберегти (він включає HTTPS незашифровані).

На щастя, це тепер є основною особливістю всіх основних браузерів (це було не тоді, коли ви задавали питання). Більше не потрібно сторонніх розширень.

У Firefox (v41 +):

  • Запустіть Інструменти для розробників Firefox у мережевому режимі (верхнє право меню> Розробник> Мережа або ctrl-shift-Q)
  • Відтворити цільовий сценарій
  • Збережіть захоплення, клацнувши правою кнопкою миші на сітці та вибравши "Зберегти все як HAR"
  • Експортуйте захоплення у файл HAR

Інший браузер:

В останній версії всього браузера ви можете легко зберегти HAR:

https://toolbox.googleapps.com/apps/har_analyzer/


6

HTTPFox - це розширення Firefox, яке зробить цю роботу.

=== EDIT ===

Клацніть правою кнопкою миші панель запитів і натисніть "Скопіювати всі рядки". Тоді ви можете зберегти його до будь-якого редактора, який вам подобається - наприклад, електронної таблиці Openoffice. Будь ласка, дивіться зображення, яке я надав.

Відповідь


Я не думаю, що так. Щойно я встановив HttpFox 0.8.9, і не можу побачити жодного способу збереження всіх зареєстрованих файлів у файлах. Зауважте, що у мене є тисячі запитів HTTP (S), і я не бажаю тиснути тисячу разів, щоб зберегти їх усі. Поясніть, будь ласка, як ви зберегли б усі дані за допомогою HttpFox.
пт

Я так думаю, шефе. Дивіться правки моєї відповіді.
слотиш

1
@slotistype: Дякую за роз'яснення зображення. Я не знав про Копіювати всі рядки раніше, тому спробував це, як ви запропонували. Це було дуже легко знайти за допомогою наданого вами зображення. На жаль, він не копіює HTTP-запит та орган відповіді, тому це не є рішенням мого питання.
пт

@pts моя погана. Щойно це помітив. Я не знаю іншого інструменту, якщо ви не встановите щось поза Firefox. Удачі
ігровий стиль

У FYI HttpFox є вкладка " Зміст" , на якій я можу переглядати тіло відповідей - за винятком деяких запитів, на які він пише Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED). Але мені потрібен орган відповіді на всі запити, тому HttpFox не може бути вирішенням цієї проблеми.
пт

3

Fiddler - це, безумовно, те, про що слід розглянути, навіть якщо це не розширення, а окрема програма.


1
Вибачте, Фіддлер не працює для мене. оскільки для цього потрібна Microsoft Windows. У мене є Ubuntu. Як я спочатку запитував, розширення для браузера, ймовірно, буде працювати в декількох операційних системах.
пт

3

Я знайшов цю відповідь, що хоче це зробити, і жодна з відповідей тут мені не підходила, тому що мені потрібно було скинути органи реагування HTTPS, як і ОП. Отже, для тих, хто приземлився тут, як я, ось що я знайшов.

Я врешті-решт приземлився на mitmproxy , який не є розширенням Firefox, але досягає мети реєстрації всього трафіку Firefox. Це все Python, тому я встановив його pip install mitmproxy- використовуйте керування пакетами, якщо хочете.

Розпочав це з mitmproxyпочаткової установки / налагодження, а потім використовував mitmdumpдля скидання потоку, як тільки я працював і вдосконалювався.

Я просто встановив Firefox використовувати 127.0.0.1:8080як проксі-сервер (8080 - порт за замовчуванням mitmproxy), і я побачив, як весь мій трафік Firefox проходить через mitmproxy. Щоб увімкнути трафік HTTPS, ви повинні прийняти сертифікат, який створює mitmproxy - із налаштованим проксі-сервером, просто перейдіть на "магічну адресу" http://mitm.it у Firefox, натисніть кнопку "Інше", встановіть прапорці довірити церт і натиснути ОК.

Щоб скинути нешифроване тіло відповідей, мені довелося використовувати дуже простий вбудований сценарій :

from libmproxy.model import decoded

def response(context, flow):
    with decoded(flow.response):  # automatically decode gzipped responses.
        with open("body.txt","ab") as f:
            f.write(flow.response.content)

Тут є історія - завантажте її як save_response.pyі використовуйте mitmdump -s save_response.py. Органи реагування почнуть накопичуватися body.txt.

mitmproxy також має ряд корисних фільтрів, які ви можете вказати, щоб mitmdump захопити саме те, що вам потрібно.


2

httpFox, httpScoop (лише для Mac) та httpWatch (IE, Firefox, Windows) - це всі інструменти, які я використовую для цього. Крім того, ви можете також спробувати Fiddler (як попередньо запропоновано), а також якщо yuo використовуєте Mac, ви можете спробувати Charles Proxy. Мій особистий фаворит - httpWatch (ви можете легко відфільтрувати заголовки, вміст, URL тощо), але це дорого, тому це може не бути варіантом.

Ви також можете ознайомитись з проектом HAR (HAR розшифровується як HTTP Archive) і це стандартний підхід до запису http-транзакцій, заголовків, вмісту тощо. Ряд згаданих інструментів здатний експортувати вам файли HAR для перегляду за допомогою він HAR Viewer (з яким ви будете знайомі, якщо переглянули функцію водоспаду у Firebug). Насправді, ви можете використовувати Firebug для створення цих файлів / журналів, а також за допомогою NetExport.

FWIW httpScoop - хороший метод налагодження / відстеження трафіку HTTP у бездротовій мережі, я писав статтю про це деякий час тому: http://blog.adtools.co.uk/trace-debug-mobile-application-http- запити, що використовують-macos /


Який із згаданих вами інструментів може зберегти дамп із усіх зареєстрованих повідомлень на диску? httpFox не може. httpScoop призначений лише для Mac, і я просив рішення Linux. httpWatch призначений лише для Windows, і я просив рішення для Linux. Fiddler лише для Windows, і я просив рішення Linux. Чарльз Проксі - це лише Mac, і я просив рішення Linux. Дякуємо, що згадали про Firebug + NetExport, який потенційно може працювати.
пт

Firebug + NetExport працює як шарм для мене в Linux. Вони експортують трафік SSL незашифрованим (саме так, як я цього хотів). Я би радий прийняти вашу відповідь, але спочатку видаліть усі інші пропозиції (або перенесіть їх на окрему відповідь).
пт

1

Wireshark можна використовувати для зйомки мережевих пакетів, включаючи речі в шарі протоколу http, та збереження їх на комп'ютері. Він також може захоплювати інформацію https, але я сумніваюся, що ви зможете налаштувати її на що-небудь розшифрувати.


1
Дякую, що запропонували Wireshark, але він марний як відповідь на моє запитання, оскільки це не рятує потік HTTPS розшифрованим.
пт

2
Wireshark може розшифрувати трафік SSL з однієї з останніх версій, якщо у вас є сертифікат приватного сервера .
cweiske

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