Log lalu lintas peramban HTTP dan HTTPS, dekripsi yang terakhir

14

Apakah ada cara saya dapat menyimpan semua komunikasi browser HTTP dan HTTPS (termasuk permintaan, respons, header lengkap dan isi) ke file di komputer saya?

Komunikasi HTTPS harus disimpan didekripsi.

Idealnya saya akan mencari sesuatu seperti ekstensi untuk Firefox atau Google Chrome.

Itu harus bekerja di Linux.

Poin
sumber

Jawaban:

4

HAR adalah Arsip HTTP, dan persis apa yang ingin Anda simpan (termasuk HTTPS yang tidak dienkripsi).

Untungnya ini sekarang adalah fitur dasar dari semua browser utama (itu bukan ketika Anda mengajukan pertanyaan). Tidak perlu lagi ekstensi pihak ketiga.

Di Firefox (v41 +):

  • Mulai Alat Pengembang Firefox dalam mode Jaringan (Menu kanan atas> Pengembang> Jaringan, atau ctrl-shift-Q)
  • Reproduksi skenario target
  • Simpan tangkapan dengan mengklik kanan pada grid dan memilih "Simpan semua sebagai HAR"
  • Ekspor hasil tangkapan ke file HAR

Perambah lain:

Di semua versi browser terbaru, Anda dapat menyimpan HAR dengan mudah:

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

vaab
sumber
6

HTTPFox adalah ekstensi Firefox yang akan melakukan pekerjaan.

=== EDIT ===

Klik kanan panel permintaan dan klik "Salin semua baris". Kemudian Anda dapat menyimpannya ke editor yang Anda sukai - misalnya spreadsheet Openoffice. Silakan lihat gambar yang saya berikan.

Menjawab

jenis slotishtype
sumber
Saya kira tidak. Saya baru saja menginstal HttpFox 0.8.9, dan saya tidak bisa melihat cara apa pun untuk menyimpan semua traffic yang dicatat ke file. Harap perhatikan bahwa saya memiliki ribuan permintaan HTTP (S), dan saya tidak bersedia mengklik ribuan kali untuk menyimpan semuanya. Harap jelaskan bagaimana Anda akan menyimpan semua data menggunakan HttpFox.
Poin
Saya pikir begitu, kepala. Lihat hasil edit untuk jawaban saya.
slotishtype
1
@slotistype: Terima kasih atas gambar klarifikasi. Saya tidak tahu tentang Salin semua baris sebelumnya, jadi saya mencobanya seperti yang Anda sarankan. Sangat mudah menemukannya menggunakan gambar yang Anda berikan. Sayangnya itu tidak menyalin permintaan HTTP dan badan respon, jadi itu bukan solusi untuk pertanyaan saya.
Poin
@ Poin saya salah. Hanya memperhatikan itu. Saya tidak tahu alat lain, kecuali jika Anda memasukkan sesuatu di luar firefox. Semoga berhasil
slotishtype
FYI HttpFox memiliki tab Konten di mana saya dapat melihat badan tanggapan - kecuali untuk beberapa permintaan, yang dikatakannya Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED). Tetapi saya membutuhkan badan respons dari semua permintaan, jadi HttpFox tidak bisa menjadi solusi untuk masalah ini.
Poin
3

Fiddler jelas sesuatu yang harus Anda pertimbangkan meskipun itu bukan perpanjangan tetapi aplikasi terpisah.

E. Jaep
sumber
1
Maaf, Fiddler tidak bekerja untuk saya. karena itu membutuhkan Microsoft Windows. Saya punya Ubuntu. Ekstensi peramban, seperti yang saya tanyakan semula, mungkin akan berfungsi pada banyak sistem operasi.
Poin
3

Saya menemukan jawaban ini ingin melakukan ini, dan tidak ada jawaban di sini yang cocok untuk saya karena saya perlu membuang badan tanggapan HTTPS, seperti OP. Jadi, bagi mereka yang mendarat di sini seperti saya, inilah yang saya temukan.

Saya akhirnya mendarat di mitmproxy , yang bukan ekstensi Firefox, tetapi tidak mencapai tujuan logging semua lalu lintas Firefox. Ini semua Python, jadi saya menginstalnya dengan pip install mitmproxy- gunakan paket palungan jika Anda mau.

Mulai dengan mitmproxyuntuk pengaturan awal / debugging, dan kemudian digunakan mitmdumpuntuk membuang aliran setelah saya berhasil dan disempurnakan.

Saya hanya mengatur Firefox untuk digunakan 127.0.0.1:8080sebagai server proxy (8080 menjadi port default mitmproxy), dan saya melihat semua lalu lintas Firefox saya datang melalui mitmproxy. Untuk mengaktifkan lalu lintas HTTPS, Anda harus menerima sertifikat yang dibuat mitmproxy - dengan pengaturan proxy, cukup buka "alamat ajaib" dari http://mitm.it di Firefox, klik tombol "Lainnya", centang kotak untuk mempercayai sertifikat, dan tekan OK.

Untuk membuang badan respons yang tidak terenkripsi, saya harus menggunakan skrip inline yang sangat sederhana :

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)

Intinya di sini - unduh sebagai save_response.pydan gunakan dengan mitmdump -s save_response.py. Badan tanggapan akan mulai menumpuk body.txt.

mitmproxy juga memiliki sejumlah filter berguna yang dapat Anda tentukan untuk mitmdump untuk mengambil apa yang Anda butuhkan.

cincodenada
sumber
2

httpFox, httpScoop (hanya Mac) dan httpWatch (IE, Firefox, windows saja) adalah semua alat yang saya gunakan untuk melakukan ini. Selain itu Anda juga dapat mencoba Fiddler (seperti yang disarankan sebelumnya) dan juga jika Anda menggunakan Mac Anda dapat mencoba Charles Proxy. Favorit pribadi saya adalah httpWatch (Anda dapat dengan mudah memfilter pada tajuk, konten, url dll), tetapi ini mahal sehingga mungkin bukan pilihan.

Anda mungkin juga ingin melihat proyek HAR (HAR singkatan dari HTTP Archive) dan merupakan pendekatan berbasis standar untuk mencatat transaksi http, header, konten dll. Sejumlah alat yang disebutkan dapat mengekspor file HAR untuk dilihat menggunakan HAR Viewer (yang akan Anda kenal jika Anda telah melihat fitur air terjun di Firebug). Bahkan, Anda bisa menggunakan Firebug untuk menghasilkan file / log ini untuk Anda juga menggunakan NetExport.

FWIW httpScoop adalah metode yang baik untuk debugging / pelacakan lalu lintas HTTP di jaringan nirkabel, saya menulis artikel tentang melakukan ini beberapa waktu yang lalu: http://blog.adtools.co.uk/trace-debug-mobile-application-http- permintaan-menggunakan-macos /

Sean Dillon
sumber
Manakah dari alat yang Anda sebutkan dapat menyimpan dump semua komunikasi yang masuk ke disk? httpfox tidak bisa. httpScoop hanya untuk Mac, dan saya meminta solusi Linux. httpWatch hanya untuk Windows, dan saya meminta solusi Linux. Fiddler hanya untuk Windows, dan saya meminta solusi Linux. Charles Proxy hanya untuk Mac, dan saya meminta solusi Linux. Terima kasih telah menyebutkan Firebug + NetExport, yang berpotensi dapat berfungsi.
Poin
Firebug + NetExport berfungsi seperti pesona bagi saya di Linux. Mereka mengekspor lalu lintas SSL yang tidak dienkripsi (seperti yang saya inginkan). Saya akan dengan senang hati menerima jawaban Anda, tetapi harap hapus semua proposisi lainnya (atau pindahkan ke jawaban yang terpisah) terlebih dahulu.
Poin
1

Wireshark dapat digunakan untuk menangkap paket jaringan, termasuk hal-hal di lapisan protokol http, dan menyimpannya ke komputer Anda. Itu juga dapat menangkap informasi https, tetapi saya ragu Anda dapat mengonfigurasinya untuk mendekripsi apa pun.

40XUserNotFound
sumber
1
Terima kasih telah menyarankan Wireshark, tetapi itu tidak berguna sebagai jawaban untuk pertanyaan saya, karena itu tidak menyimpan aliran HTTPS yang didekripsi.
Poin
2
Wireshark dapat mendekripsi lalu lintas SSL sejak salah satu versi terakhir jika Anda memiliki sertifikat server pribadi .
cweiske
1
Saya tidak memiliki sertifikat server pribadi.
Poin