Android: การบันทึกคำขอ HTTP ด้วยอุปกรณ์ Android ที่ไม่ได้รูท


92

ฉันมีแอปพลิเคชั่น Android ที่ใช้โถของบุคคลที่สามอยู่ คำขอ HTTP ถูกส่งจาก jar ของบุคคลที่สามไปยังเซิร์ฟเวอร์เมื่อแอปพลิเคชันกำลังทำงาน ฉันต้องการจับ HTTP Request ที่ส่งจาก jar ของบุคคลที่สาม ฉันสงสัยว่ามีวิธีง่ายๆในการใช้งานกับอุปกรณ์ที่ไม่ได้รูทหรือไม่

ในการเริ่มต้น: ฉันลองดาวน์โหลด "proxyDroid" แต่ต้องใช้โทรศัพท์ที่รูทแล้วฉันได้ลองดาวน์โหลด "shark for root" ด้วย "shark reader" ซึ่งต้องใช้อุปกรณ์ที่รูทเช่นกันฉันลองใช้แอปพลิเคชันอื่น ๆ อีกมากมายซึ่งสามารถจับคำขอที่สมบูรณ์ได้ เป็นอุปกรณ์ที่รูท

ฉันต้องการบางสิ่งที่ fiddler / Wirehark สามารถทำได้สำหรับ windows เครื่องวิเคราะห์แพ็กเก็ตเครือข่ายที่สามารถรวมเข้ากับแอปพลิเคชัน Android ที่สามารถให้วัตถุที่ร้องขอพร้อมฟิลด์ส่วนหัวทั้งหมด


นี่คือ "แอปพลิเคชัน Android" ของคุณหรือไม่
CommonsWare

ใช่แอปพลิเคชัน Android ของฉัน
Venkatesh

สวัสดี @Venkatesh คุณเคยประสบความสำเร็จในการสกัดกั้นคำขอ http ด้วย Android ที่ไม่ได้รูทหรือไม่?

@lalalalalala Nope. ฉันไม่สามารถทำสิ่งนี้ได้ด้วยอุปกรณ์ที่ไม่ได้รูท
Venkatesh

คำตอบ:


82

คุณสามารถติดตั้งCharlesซึ่งเป็นพร็อกซี HTTP / HTTP monitor / Reverse Proxy ที่ช่วยให้นักพัฒนาสามารถดูการรับส่งข้อมูล HTTP และ SSL / HTTPS ทั้งหมดระหว่างเครื่องและอินเทอร์เน็ตบนพีซีหรือ MAC ของคุณ

ขั้นตอนการกำหนดค่า:

  • ปล่อยให้โทรศัพท์และพีซีหรือ MAC ของคุณอยู่ใน LAN เดียวกัน
  • เปิด Charles ที่คุณติดตั้งไว้ (พอร์ตพร็อกซีเริ่มต้นคือ 8888)
  • ตั้งค่าการกำหนดค่า wifi ของโทรศัพท์ของคุณ: ตั้งค่า ip ของผู้รับมอบสิทธิ์เป็นพีซีหรือ IP ของ MAC พอร์ตของผู้รับมอบสิทธิ์เป็น 8888
  • ล้างแอปของคุณในโทรศัพท์ของคุณ และตรวจสอบคำขอ http บน Charles

4
บทช่วยสอนนี้ทำงานได้ดี: jaanus.com/blog/2012/02/12/…
Lionel

18
น่าเสียดายที่มันเป็นแชร์แวร์
ข้อบกพร่อง

1
คุณอาจต้องการลองใช้ชุดเรอเพื่อให้งานเดียวกันเสร็จ มันมีประสิทธิภาพและฟรีมาก: portswigger.net/burp
gerodim

มีเครื่องมือใดบ้างที่ทำเช่นเดียวกันกับการรับส่งข้อมูลเว็บซ็อกเก็ต ฉันหมายถึง Android เอง (ฉันรู้จัก Wireshark / fiddler สำหรับพีซี)
Amol M Kulkarni

สำหรับ Android คืออะไร
mohsen

17

ฉันเพิ่งติดตั้ง Drony ไม่ใช่แชร์แวร์และไม่จำเป็นต้องรูทบนโทรศัพท์มือถือที่มี Android 3.x ขึ้นไป

https://play.google.com/store/apps/details?id=org.sandroproxy.drony

สกัดกั้นการร้องขอและแสดงบน LOG


นี่คือสิ่งที่ฉันกำลังมองหา แต่ฉันต้องการรหัสที่แน่นอนสำหรับแอปนี้คุณสามารถโพสต์ลิงค์สำหรับซอร์สโค้ดสำหรับ Android ได้หรือไม่?
Smit.Satodia

2
@ Smit.Satodia ฉันไม่รู้ว่าพวกเขาแบ่งปัน / เผยแพร่ซอร์สโค้ดหรือไม่หากใครพบว่าสามารถโพสต์ลิงค์เป็นความคิดเห็นได้
Mauricio Gracia Gutierrez

2
ซอร์สโค้ดสามารถพบได้ที่นี่: github.com/SuppSandroB/sandropเดิมโฮสต์บน Google Code ที่นี่: code.google.com/archive/p/sandrop
GabLeRoux

1
@JanWytze หากคุณติดต่อนักพัฒนาบางทีพวกเขาอาจช่วยคุณได้
Mauricio Gracia Gutierrez

มันบันทึกชื่อโฮสต์ / ip เท่านั้นไม่มีประโยชน์จริงๆ
uingtea

17

มีหลายวิธีในการทำเช่นนั้น แต่หนึ่งในนั้นคือมือไม่พาย

การกำหนดค่า Fiddler

  1. ไปที่ตัวเลือก
  2. ในแท็บHTTPSเปิดใช้งานCapture HTTPS Connectsและถอดรหัสการรับส่งข้อมูล HTTPS
  3. ในการเชื่อมต่อแท็บเปิดใช้งานการอนุญาตให้คอมพิวเตอร์ระยะไกลในการเชื่อมต่อ
  4. รีสตาร์ท fiddler

การกำหนดค่า Android

  1. เชื่อมต่อกับเครือข่ายเดียวกัน
  2. แก้ไขการตั้งค่าเครือข่าย
  3. เพิ่มพร็อกซีสำหรับการเชื่อมต่อกับที่อยู่ IP ของพีซีของคุณ (หรือชื่อโฮสต์) และพอร์ตเริ่มต้นของ fiddler (8888 / คุณสามารถเปลี่ยนได้ในการตั้งค่า)

ตอนนี้คุณสามารถดูบันทึกทั้งหมดจากอุปกรณ์ของคุณในมือเล่นซอ

นอกจากนี้คุณสามารถค้นหาคำแนะนำแบบเต็มได้ที่นี่


2
Fiddler beta พร้อมใช้งานบน macOS (ใช้โมโน) นี่เป็นข่าวดีหากคุณไม่มีพีซี
MacKentoch

ขอบคุณ แต่ฉันหมายถึงคอมพิวเตอร์ทุกเครื่องในคำตอบนี้ PC / Laptop / etc ... :) @MacKentoch
Arash Hatami

6

คุณสามารถใช้ fiddler เป็น webdebugger http://www.telerik.com/fiddler/web-debugging

Fiddlerเป็นเครื่องมือดีบักจากซอฟต์แวร์ telerik ซึ่งช่วยให้คุณสกัดกั้นทุกคำขอที่เริ่มต้นจากเครื่องของคุณ


4
แม้ว่าลิงก์นี้อาจตอบคำถามได้ แต่ควรรวมส่วนสำคัญของคำตอบไว้ที่นี่และระบุลิงก์เพื่อการอ้างอิง คำตอบแบบลิงก์เท่านั้นอาจไม่ถูกต้องหากหน้าที่เชื่อมโยงเปลี่ยนไป
zohar

6

ตอนนี้เป็นปี 2020 สำหรับโซลูชันล่าสุดคุณสามารถใช้ Burp Suite เพื่อดมกลิ่นการรับส่งข้อมูล https โดยไม่ต้องรูทอุปกรณ์ Android ของคุณ

ขั้นตอน:

  1. ติดตั้ง Burp Suite

  2. เปิดใช้งาน Proxy

  3. นำเข้าการรับรองในโทรศัพท์ Android ของคุณ

  4. เปลี่ยนการกำหนดค่า Wifi ของคุณเป็นฟังพร็อกซี

  5. กำไร!

ฉันเขียนบทแนะนำและภาพหน้าจอแบบเต็มเกี่ยวกับวิธีการที่นี่: https://www.yodiw.com/monitor-android-network-traffic-with-burp/


จะเป็นการดีที่จะคัดลอกข้อมูลจากเว็บไซต์เพื่อตอบคุณที่นี่ เนื่องจากไซต์ของคุณอาจล่ม นอกจากนี้ SO ยังสนับสนุนการอ้างอิงมากกว่าการเชื่อมโยงด้วยเหตุผลเดียวกันนี้ นอกเหนือจากบทแนะนำที่ยอดเยี่ยมแล้ว
มาร์ค

แม้ว่าจะยุติธรรมมันอาจจะดีกว่าแค่ปรับปรุงstackoverflow.com/a/39684919/5506988มากกว่าที่จะเขียน "คำตอบ" อีก .... เยี่ยมไปเลย
มาร์ค

4

คุณสามารถใช้ Burp-suite ทำตามขั้นตอนด้านล่าง

กำหนดค่าตัวฟัง Burp Proxy

ใน Burp ไปที่แท็บ“ Proxy” จากนั้นคลิกที่แท็บ“ Options” ในส่วน“ Proxy Listeners” ให้คลิกปุ่ม“ Add”

ในแท็บ "Binding" ในช่อง "Bind to port:" ให้ป้อนหมายเลขพอร์ตที่ไม่ได้ใช้งานอยู่ในปัจจุบันเช่น“ 8082” จากนั้นเลือกตัวเลือก“ All interface” และคลิก“ OK”

กำหนดค่าอุปกรณ์ของคุณเพื่อใช้พร็อกซี

ในอุปกรณ์ Android ของคุณไปที่เมนู "การตั้งค่า"

หากอุปกรณ์ของคุณไม่ได้เชื่อมต่อกับเครือข่ายไร้สายที่คุณใช้อยู่ให้เปิดปุ่ม "Wi-Fi" แล้วแตะปุ่ม "Wi-Fi" เพื่อเข้าถึงเมนู "Wi-Fi"

ในตาราง "เครือข่าย Wi-Fi" ให้ค้นหาเครือข่ายของคุณแล้วแตะเพื่อเปิดเมนูการเชื่อมต่อ

แตะ "เชื่อมต่อ" หากคุณกำหนดรหัสผ่านไว้ให้ป้อนรหัสผ่านแล้วดำเนินการต่อ

เมื่อคุณเชื่อมต่อแล้วกดปุ่มเครือข่ายค้างไว้เพื่อเปิดเมนูบริบทแตะ“ แก้ไขการกำหนดค่าเครือข่าย”

ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่อง "แสดงตัวเลือกขั้นสูง"

เปลี่ยน“ การตั้งค่าพร็อกซี” เป็น“ ด้วยตนเอง” โดยแตะที่ปุ่ม

จากนั้นป้อน IP ของคอมพิวเตอร์ที่ใช้ Burp ใน“ Proxy hostname” ป้อนหมายเลขพอร์ตที่กำหนดค่าไว้ในส่วน“ Proxy Listeners” ก่อนหน้านี้ในตัวอย่าง“ 8082” แตะ“ บันทึก”

ทดสอบการกำหนดค่า

ใน Burp ไปที่แท็บ "Proxy Intercept" และตรวจสอบให้แน่ใจว่าการสกัดกั้นนั้น "เปิด" (หากปุ่มระบุว่า "Intercept is off" ให้คลิกเพื่อสลับสถานะการสกัดกั้น

เปิดเบราว์เซอร์บนอุปกรณ์ Android ของคุณและไปที่หน้าเว็บ HTTP (คุณสามารถไปที่หน้าเว็บ HTTPS เมื่อคุณติดตั้งใบรับรอง CA ของ Burp ในอุปกรณ์ Android ของคุณ)

คำขอควรถูกดักฟังใน Burp


2

ดูเหมือนว่าSandroProxyจะดีกว่า Drony (โดยผู้พัฒนารายเดียวกัน): คุณสามารถ (แต่ไม่ต้อง) ดูและวิเคราะห์ปริมาณการใช้งานในเบราว์เซอร์พีซีของคุณได้อย่างสะดวก

ควรทำงานในอีมูเลเตอร์ด้วย


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