एंड्रॉइड: गैर-रूट किए गए एंड्रॉइड डिवाइस के साथ HTTP अनुरोधों को कैप्चर करना


92

मेरे पास एक एंड्रॉइड एप्लिकेशन है जो इसमें थर्ड पार्टी जार का उपयोग करता है। एप्लिकेशन चलने पर सर्वर से Http रिक्वेस्ट थर्ड पार्टी जार से भेजी जाती है। मुझे तीसरे पक्ष के जार से भेजे गए HTTP अनुरोध को पकड़ने की आवश्यकता है। मैं सोच रहा हूं कि क्या गैर-निहित डिवाइस के साथ लागू करने का एक आसान तरीका है

शुरू करने के लिए: मैंने "प्रॉक्सीड्रॉइड" डाउनलोड करने की कोशिश की, लेकिन इसके लिए रूट किए गए फोन की आवश्यकता है मैंने "शार्क रीडर" के साथ "शार्क के लिए रूट" डाउनलोड करने की भी कोशिश की है, जिसे रूट किए गए डिवाइस की भी आवश्यकता है मैंने कई अन्य अनुप्रयोगों की कोशिश की, जो पूर्ण अनुरोध पर कब्जा कर सकते हैं, लेकिन सभी की जरूरत है डिवाइस निहित है

मुझे कुछ चाहिए जो खिड़कियों के लिए फिडलर / वायरशार्क कर सकता है। एक नेटवर्क पैकेट विश्लेषक जो आसानी से एंड्रॉइड एप्लिकेशन के साथ एकीकृत हो सकता है जो इसमें सभी हेडर फ़ील्ड के साथ अनुरोध ऑब्जेक्ट दे सकता है।


क्या यह आपका "एंड्रॉइड एप्लिकेशन" है?
कॉमन्सवेयर जूल

हाँ मेरे Android आवेदन
वेंकटेश

नमस्कार @Venkatesh, क्या आपने कभी गैर-रूट किए गए एंड्रॉइड के साथ http अनुरोधों को अवरोधन करने के लिए सफलतापूर्वक प्राप्त किया?

@ लाललाललाल नोप मैं गैर-रूट किए गए डिवाइस के साथ इसे हासिल नहीं कर सका।
वेंकटेश

जवाबों:


82

आप चार्ल्स - एक HTTP प्रॉक्सी / HTTP मॉनिटर / रिवर्स प्रॉक्सी स्थापित कर सकते हैं जो एक डेवलपर को अपने पीसी या मैक पर उनके मशीन और इंटरनेट के बीच HTTP और SSL / HTTPS ट्रैफ़िक को देखने में सक्षम बनाता है।

कॉन्फ़िगरेशन चरण:

  • एक ही LAN में अपने फ़ोन और PC या MAC को रहने दें
  • आपके द्वारा इंस्टॉल किया गया चार्ल्स लॉन्च करें (डिफ़ॉल्ट प्रॉक्सी पोर्ट 8888 है)
  • अपने फ़ोन के वाईफ़ाई कॉन्फ़िगरेशन को सेट करें: अपने पीसी या मैक के प्रतिनिधि के प्रतिनिधि को 8888 पर प्रतिनिधि के पोर्ट पर सेट करें
  • अपने फोन में अपना ऐप लाओ। और चार्ल्स पर http अनुरोधों की निगरानी करें।

4
इस ट्यूटोरियल ने अच्छी तरह से काम किया: jaanus.com/blog/2012/02/12/…
Lionel

18
दुर्भाग्य से यह एक शेयरवेयर है।
दोषपूर्ण

1
आप एक ही काम करने के लिए वैकल्पिक रूप से burp सुइट की कोशिश करना चाह सकते हैं। यह बहुत शक्तिशाली और मुफ्त है: portswigger.net/burp
gerodim

क्या वेब सॉकेट ट्रैफ़िक के साथ भी ऐसा करने के लिए कोई उपकरण है? मेरा मतलब Android पर ही है। (मैं पीसी के लिए वायरशार्क / फ़िडलर जानता हूं)
अमोल एम कुलकर्णी

एंड्रॉइड के लिए क्या है
मोहनन

17

मैंने अभी Drony स्थापित किया है, शेयरवेयर नहीं है और इसे एंड्रॉइड 3.x या उससे ऊपर के सेलफोन पर रूट की आवश्यकता नहीं है

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

यह अनुरोधों को स्वीकार करता है और एक लॉग पर दिखाया जाता है


यह वही है जो मैं ढूंढ रहा हूं, लेकिन मुझे इस ऐप के लिए सटीक सॉकोडकोड चाहिए, क्या आप एंड्रॉइड के लिए स्रोत कोड के लिए एक लिंक पोस्ट कर सकते हैं?
स्मित.सतोडिया

2
@ Smit.Satodia मुझे पता नहीं है कि वे स्रोत कोड साझा करते हैं / प्रकाशित करते हैं, अगर किसी को यह टिप्पणी के रूप में लिंक पोस्ट करने के लिए स्वतंत्र महसूस हो रहा है
मौरिसियो ग्रेसिया

2
स्रोत कोड यहां पाया जा सकता है: github.com/SuppSandroB/sandrop यह मूल रूप से Google कोड पर यहां होस्ट किया गया था: code.google.com/archive/p/sandrop
GabLeRoux

1
@JanWytze अगर आप डेवलपर्स से संपर्क करते हैं तो शायद वे आपकी इसमें मदद कर सकते हैं।
मौरिसियो ग्रेसिया

यह केवल hostname / ip लॉग करता है, वास्तव में उपयोगी नहीं है
uingtea

17

ऐसा करने के कई तरीके हैं, लेकिन उनमें से एक फिडलर है

फिडलर कॉन्फ़िगरेशन

  1. विकल्पों पर जाएं
  2. में HTTPS टैब, सक्षम कब्जा HTTPS जोड़ता और डिक्रिप्ट HTTPS ट्रैफ़िक
  3. में कनेक्शन टैब, सक्षम दूरस्थ कंप्यूटर से कनेक्ट होने दें
  4. फ़िडलर को पुनः आरंभ करें

Android कॉन्फ़िगरेशन

  1. एक ही नेटवर्क से कनेक्ट करें
  2. नेटवर्क सेटिंग्स को संशोधित करें
  3. अपने पीसी के आईपी पते (या होस्टनाम) और डिफ़ॉल्ट फ़िडलर पोर्ट (8888 / आप सेटिंग्स में इसे बदल सकते हैं) के साथ कनेक्शन के लिए प्रॉक्सी जोड़ें

अब आप फ़िडलर में अपने डिवाइस से पूर्ण लॉग देख सकते हैं

इसके अलावा आप यहां एक पूरा निर्देश पा सकते हैं


2
फिडलर बीटा macOS (मोनो पर निर्भर) पर उपलब्ध है। यदि आपके पास पीसी नहीं है तो यह अच्छी खबर है।
मैकेंकॉच

धन्यवाद, लेकिन मेरा मतलब है कि इस उत्तर में सभी कंप्यूटर हैं। PC / Laptop / etc ... :) @MacKentoch
Arash Hatami

6

आप fiddler को webdebugger http://www.telerik.com/fiddler/web-debugging के रूप में उपयोग कर सकते हैं

फिडलर टेलरिक सॉफ्टवेयर से डिबगिंग टूल है, जो आपको आपके मशीन से शुरू किए गए हर अनुरोध को रोकने में मदद करता है।


4
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक हिस्सों को यहां शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं
जोहार

6

यह अब 2020 है, नवीनतम समाधान के लिए, आप अपने Android डिवाइस को रूट किए बिना https ट्रैफ़िक को सूँघने के लिए Burp Suite का उपयोग कर सकते हैं।

कदम:

  1. Burp Suite स्थापित करें

  2. प्रॉक्सी सक्षम करें

  3. अपने Android फ़ोन में प्रमाणीकरण आयात करें

  4. आप प्रॉक्सी को सुनने के लिए वाईफ़ाई विन्यास बदलें

  5. फायदा!

मैंने पूर्ण ट्यूटोरियल और स्क्रीनशॉट को यहाँ पर कैसे करें: https://www.yodiw.com/monitor-android-network-traffic-with-burp/ लिखा था।


आपके द्वारा यहां उत्तर देने के लिए साइट से डेटा कॉपी करना अच्छा रहेगा। चूंकि आप साइट नीचे जा रहे हैं। इसके अलावा एसओ इसी कारण के लिए लिंक के बजाय उद्धरण को प्रोत्साहित करता है। उस महान ट्यूटोरियल के अलावा अन्य।
मार्क

हालांकि निष्पक्ष होना बेहतर हो सकता है कि केवल stackoverflow.com/a/39684919/5506988 को सुधारने के लिए एक और "उत्तर" लिखने की तुलना में .... वैसे भी बहुत अच्छा काम।
मार्क

4

आप burp-suite का उपयोग कर सकते हैं। नीचे प्रक्रिया का पालन करें।

Burp प्रॉक्सी श्रोता को कॉन्फ़िगर करें

बर्प में, "प्रॉक्सी" टैब और फिर "विकल्प" टैब पर जाएं। "प्रॉक्सी श्रोताओं" अनुभाग में, "जोड़ें" बटन पर क्लिक करें।

"बाइंडिंग" टैब में, "बाइंड टू पोर्ट:" बॉक्स में, एक पोर्ट नंबर दर्ज करें जो वर्तमान में उपयोग में नहीं है, जैसे "8082"। तब "सभी इंटरफेस" विकल्प चुनें, और "ओके" पर क्लिक करें।

प्रॉक्सी का उपयोग करने के लिए अपने डिवाइस को कॉन्फ़िगर करें

अपने Android डिवाइस में, "सेटिंग" मेनू पर जाएं।

यदि आपका डिवाइस आपके द्वारा उपयोग किए जा रहे वायरलेस नेटवर्क से पहले से कनेक्ट नहीं है, तो "वाई-फाई" बटन को स्विच करें, और "वाई-फाई" मेनू तक पहुंचने के लिए "वाई-फाई" बटन पर टैप करें।

"वाई-फाई नेटवर्क" तालिका में, अपना नेटवर्क ढूंढें और कनेक्शन मेनू को लाने के लिए इसे टैप करें।

"कनेक्ट" पर टैप करें। यदि आपने एक पासवर्ड कॉन्फ़िगर किया है, तो इसे दर्ज करें और जारी रखें।

एक बार जब आप संदर्भ मेनू को लाने के लिए नेटवर्क बटन पर होल्ड से जुड़े रहते हैं। "नेटवर्क कॉन्फिगर करें संशोधित करें"।

सुनिश्चित करें कि "उन्नत विकल्प दिखाएँ" बॉक्स पर टिक लगा है।

बटन को टैप करके "प्रॉक्सी सेटिंग्स" को "मैनुअल" में बदलें।

फिर कंप्यूटर के IP को "Proxy hostname" में Burp चलाने के लिए दर्ज करें। पहले "Proxy Hearers" सेक्शन में कॉन्फ़िगर किए गए पोर्ट नंबर को इस उदाहरण में "8082" .Tap "Save" में दर्ज करें।

कॉन्फ़िगरेशन का परीक्षण करें

बर्प में, "प्रॉक्सी अवरोधन" टैब पर जाएं, और यह सुनिश्चित करें कि अवरोधन "चालू" है (यदि बटन कहता है कि "अवरोधन बंद है" तो इसे अवरोधन स्थिति को चालू करने के लिए क्लिक करें)।

अपने एंड्रॉइड डिवाइस पर ब्राउज़र खोलें और एक HTTP वेब पेज पर जाएं (जब आप अपने एंड्रॉइड डिवाइस में बर्प का सीए सर्टिफिकेट स्थापित कर लें तो आप HTTPS वेब पेज पर जा सकते हैं।)

अनुरोध को बर्प में इंटरसेप्ट किया जाना चाहिए।


2

SandroProxy ड्रोन (एक ही डेवलपर द्वारा) की तुलना में बेहतर प्रतीत होता है: आप अपने पीसी के ब्राउज़र में यातायात को आसानी से देख और विश्लेषण कर सकते हैं (लेकिन ऐसा नहीं है)।

एमुलेटर में भी काम करना चाहिए।


1

उसी LAN पर प्रॉक्सी के रूप में एक https://mitmproxy.org/ सेट करें

  • खुला स्त्रोत
  • अजगर 3 में बनाया गया
  • पाइप के माध्यम से स्थापित करने योग्य
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.