บันทึกปริมาณการใช้เบราว์เซอร์ 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 ที่จะทำงาน

=== === แก้ไข

คลิกขวาที่แผงคำขอและคลิก "คัดลอกแถวทั้งหมด" จากนั้นคุณสามารถบันทึกลงในสิ่งที่เคยแก้ไข - ตัวอย่างเช่นสเปรดชีต Openoffice โปรดดูภาพที่ฉันให้

ตอบ


ฉันไม่คิดอย่างนั้น ฉันเพิ่งติดตั้ง HttpFox 0.8.9 และฉันไม่เห็นวิธีใด ๆ ในการบันทึกทราฟฟิกที่บันทึกไว้ทั้งหมดลงในไฟล์ โปรดทราบว่าฉันมีคำขอ HTTP (S) หลายพันรายการและฉันไม่ต้องการคลิกหนึ่งพันครั้งเพื่อบันทึกทั้งหมด โปรดอธิบายว่าคุณจะบันทึกข้อมูลทั้งหมดโดยใช้ HttpFox อย่างไร
pts

ฉันคิดว่าเป็นหัวหน้า ดูการแก้ไขคำตอบของฉัน
slotishtype

1
@slotistype: ขอบคุณสำหรับภาพความกระจ่าง ฉันไม่เคยรู้เกี่ยวกับการคัดลอกแถวทั้งหมดมาก่อนดังนั้นฉันจึงลองทำตามที่คุณแนะนำ มันง่ายมากในการค้นหาโดยใช้รูปภาพที่คุณให้ น่าเสียดายที่มันไม่ได้คัดลอกคำขอ HTTP และเนื้อหาตอบกลับดังนั้นจึงไม่ใช่วิธีแก้ปัญหาสำหรับคำถามของฉัน
pts

@pts ไม่ดีของฉัน เพิ่งสังเกตเห็นว่า ฉันไม่รู้จักเครื่องมืออื่นนอกจากคุณจะติดตั้งบางอย่างนอก firefox ขอให้โชคดี
slotishtype

FYI HttpFox มีเนื้อหาแท็บที่ฉันสามารถดูเนื้อหาการตอบสนอง - Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED)ยกเว้นสำหรับการร้องขอบางอย่างที่มันพูดว่า แต่ฉันต้องการเนื้อหาการตอบสนองของคำขอทั้งหมดดังนั้น HttpFox จึงไม่สามารถแก้ไขปัญหานี้ได้
pts

3

พู้ทำเล่นเป็นสิ่งที่คุณควรพิจารณาถึงแม้ว่ามันจะไม่ใช่ส่วนขยาย แต่เป็นแอปพลิเคชันแยกต่างหาก


1
ขออภัย Fiddler ใช้งานไม่ได้สำหรับฉัน เพราะมันต้องใช้ Microsoft Windows ฉันมี Ubuntu ส่วนขยายเบราว์เซอร์อย่างที่ฉันเคยถามอาจจะใช้ได้กับระบบปฏิบัติการหลายระบบ
จุด

3

ฉันพบคำตอบนี้ต้องการทำเช่นนี้และไม่มีคำตอบใดที่เหมาะสมกับฉันเพราะฉันต้องการถ่ายโอนเนื้อหาตอบสนอง HTTPS เหมือน OP ดังนั้นสำหรับผู้ที่มาที่นี่อย่างที่ฉันทำนี่คือสิ่งที่ฉันพบ

ในที่สุดฉันก็มาถึงmitmproxyซึ่งไม่ใช่ส่วนขยายของ Firefox แต่ทำตามเป้าหมายของการบันทึกปริมาณการใช้งาน Firefox ทั้งหมด มันคือ Python ทั้งหมดดังนั้นฉันจึงติดตั้งด้วยpip install mitmproxy- ใช้เครื่องมือจัดการบรรจุภัณฑ์หากคุณต้องการ

เริ่มต้นด้วยmitmproxyการตั้งค่าเริ่มต้น / การดีบักและจากนั้นใช้mitmdumpในการถ่ายโอนข้อมูลสตรีมเมื่อฉันได้ทำงานและปรับปรุง

ฉันเพิ่งตั้ง Firefox ให้ใช้127.0.0.1:8080เป็นพร็อกซีเซิร์ฟเวอร์ (8080 เป็นพอร์ตเริ่มต้นของ mitmproxy) และฉันเห็นการรับส่งข้อมูล Firefox ทั้งหมดของฉันมาถึง mitmproxy ในการเปิดใช้งานการรับส่งข้อมูล HTTPS คุณต้องยอมรับใบรับรองที่ mitmproxy สร้างขึ้น - ด้วยการตั้งค่าพร็อกซีเพียงไปที่ "magic address" ของhttp://mitm.itใน Firefox คลิกปุ่ม "อื่น ๆ " ทำเครื่องหมายที่ช่อง เพื่อเชื่อถือใบรับรองและกด OK

ในการถ่ายโอนเนื้อหาการตอบกลับที่ไม่ได้เข้ารหัสฉันต้องใช้สคริปต์อินไลน์ที่ง่ายมาก:

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 (ตามที่แนะนำก่อนหน้านี้) และถ้าคุณใช้ 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 พู้ทำเล่นเป็น Windows เท่านั้นและฉันกำลังขอโซลูชัน Linux Charles Proxy เป็น Mac เท่านั้นและฉันขอโซลูชัน Linux ขอบคุณสำหรับการกล่าวถึง Firebug + NetExport ที่สามารถทำงานได้
pts

Firebug + NetExport ทำงานอย่างมีเสน่ห์สำหรับฉันบน Linux พวกเขาส่งออกการรับส่งข้อมูล SSL ที่ไม่ได้เข้ารหัส (เช่นเดียวกับที่ฉันต้องการ) ฉันยินดีที่จะยอมรับคำตอบของคุณ แต่โปรดลบข้อเสนออื่น ๆ ทั้งหมด (หรือย้ายไปยังคำตอบอื่น) ก่อน
pts

1

Wiresharkสามารถใช้เพื่อจับแพ็คเก็ตเครือข่ายรวมถึงสิ่งต่าง ๆ ในเลเยอร์โปรโตคอล http และบันทึกลงในคอมพิวเตอร์ของคุณ นอกจากนี้ยังสามารถบันทึกข้อมูล https ได้ แต่ฉันสงสัยว่าคุณจะสามารถกำหนดค่าให้ถอดรหัสอะไรก็ได้


1
ขอบคุณที่แนะนำ Wireshark แต่มันไร้ประโยชน์เป็นคำตอบสำหรับคำถามของฉันเนื่องจากไม่ได้บันทึกการถอดรหัส HTTPS สตรีม
pts

2
Wireshark สามารถถอดรหัสการใช้งาน SSL ตั้งแต่รุ่นใดรุ่นหนึ่งที่ผ่านมาถ้าคุณมีใบรับรองเซิร์ฟเวอร์ส่วนตัว
cweiske

1
ฉันไม่มีใบรับรองเซิร์ฟเวอร์ส่วนตัว
pts
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.