Android: acquisizione di richieste HTTP con dispositivo Android non rootato


92

Ho un'applicazione Android che utilizza un jar di terze parti. La richiesta HTTP viene inviata da jar di terze parti al server quando l'applicazione è in esecuzione. Devo acquisire la richiesta HTTP inviata da un jar di terze parti. Mi chiedo se esista un modo semplice per implementare con un dispositivo non rootato

Per avviare: ho provato a scaricare "proxyDroid" ma ha bisogno di un telefono rootato Ho anche provato a scaricare "shark for root" con "shark reader" che necessita anche di un dispositivo rooted Ho provato molte altre applicazioni che potrebbero catturare la richiesta completa ma tutto ciò di cui ha bisogno è un dispositivo rooted

Ho bisogno di qualcosa che cosa può fare Fiddler / WireShark per Windows. Un analizzatore di pacchetti di rete che potrebbe essere facilmente integrato con l'applicazione Android che potrebbe fornire un oggetto di richiesta con tutti i campi di intestazione al suo interno.


Questa è la tua "applicazione Android"?
CommonsWare

Sì, la mia applicazione Android
Venkatesh

Ciao @Venkatesh, sei mai riuscito a intercettare le richieste http con Android non rootato?

@lalalalalala No. Non sono riuscito a raggiungere questo obiettivo con un dispositivo non rootato.
Venkatesh

Risposte:


82

È possibile installare Charles - un proxy HTTP / monitor HTTP / proxy inverso che consente a uno sviluppatore di visualizzare tutto il traffico HTTP e SSL / HTTPS tra la propria macchina e Internet - sul PC o MAC.

Passaggi di configurazione:

  • Lascia il tuo telefono e PC o MAC nella stessa LAN
  • Avvia Charles che hai installato (la porta proxy predefinita è 8888)
  • Imposta la configurazione wifi del tuo telefono: imposta l'ip del delegato sul tuo PC o l'ip del MAC, la porta del delegato su 8888
  • Avvia la tua app sul telefono. E monitora le richieste http su Charles.

4
questo tutorial ha funzionato bene: jaanus.com/blog/2012/02/12/…
Lionel

18
Purtroppo è uno shareware.
Flawyte

1
Potresti provare in alternativa la suite burp per ottenere lo stesso lavoro. È molto potente e gratuito: portswigger.net/burp
gerodim

Esistono strumenti per fare lo stesso con il traffico web socket? Voglio dire su Android stesso. (Conosco WireShark / Fiddler per PC)
Amol M Kulkarni

Cos'è per Android
mohsen

17

Ho appena installato Drony, non è shareware e non richiede il root sul cellulare con Android 3.xo superiore

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

Intercetta le richieste e vengono visualizzate su un LOG


Questo è quello che sto cercando, ma voglio il codice sorgente esatto per questa app, puoi pubblicare un link per il codice sorgente per Android?
Smit.Satodia

2
@ Smit.Satodia Non so se condividono / pubblicano il codice sorgente, se qualcuno lo trova non esitate a postare il link come commento
Mauricio Gracia Gutierrez

2
Il codice sorgente può essere trovato qui: github.com/SuppSandroB/sandrop Era originariamente ospitato su Google Code qui: code.google.com/archive/p/sandrop
GabLeRoux

1
@JanWytze se contatti gli sviluppatori forse possono aiutarti con questo.
Mauricio Gracia Gutierrez

registra solo hostname / ip, non molto utile
uingtea

17

Ci sono molti modi per farlo, ma uno di questi è il violinista

Configurazione Fiddler

  1. Vai alle opzioni
  2. Nella scheda HTTPS , abilitare Cattura connessioni HTTPS e Decrittografa traffico HTTPS
  3. Nella scheda Connessioni , abilita Consenti ai computer remoti di connettersi
  4. Riavvia il violinista

Configurazione Android

  1. Connettiti alla stessa rete
  2. Modifica le impostazioni di rete
  3. Aggiungi proxy per la connessione con l'indirizzo IP del tuo PC (o nome host) e la porta predefinita del violinista (8888 / puoi modificarla nelle impostazioni)

Ora puoi vedere il registro completo dal tuo dispositivo in Fiddler

Inoltre puoi trovare un'istruzione completa qui


2
La beta di Fiddler è disponibile su macOS (basato su mono). Questa è una buona notizia se non hai un PC.
MacKentoch

Grazie ma intendo tutti i computer in questa risposta. PC / Laptop / ecc ... :) @MacKentoch
Arash Hatami

6

Puoi usare Fiddler come webdebugger http://www.telerik.com/fiddler/web-debugging

Fiddler è uno strumento di debug del software telerik, che ti aiuta a intercettare ogni richiesta avviata dalla tua macchina.


4
Sebbene questo collegamento possa rispondere alla domanda, è meglio includere le parti essenziali della risposta qui e fornire il collegamento come riferimento. Le risposte di solo link possono diventare non valide se la pagina collegata cambia
zohar

6

È il 2020 ora, per la soluzione più recente, puoi utilizzare Burp Suite per sniffare il traffico https senza eseguire il root del tuo dispositivo Android.

Passaggi:

  1. Installa Burp Suite

  2. Abilita proxy

  3. Importa la certificazione nel tuo telefono Android

  4. Cambia la tua configurazione Wi-Fi per ascoltare il proxy

  5. Profitto!

Ho scritto il tutorial completo e lo screenshot su come farlo qui: https://www.yodiw.com/monitor-android-network-traffic-with-burp/


Sarebbe bello copiare i dati dal sito alla tua risposta qui. Dal momento che il tuo sito potrebbe non funzionare. Anche SO incoraggia la citazione piuttosto che i collegamenti per lo stesso motivo. Oltre a quel fantastico tutorial.
Mark

Anche se per essere onesti potrebbe essere stato meglio migliorare stackoverflow.com/a/39684919/5506988 piuttosto che scrivere un'altra "risposta" .... Comunque ottimo lavoro.
Mark

4

puoi usare burp-suite. seguire la procedura seguente.

Configura il listener Burp Proxy

In Burp, vai alla scheda "Proxy" e poi la scheda "Opzioni". Nella sezione "Proxy Listeners", fare clic sul pulsante "Aggiungi".

Nella scheda "Binding", nella casella "Bind to port:", inserisci un numero di porta che non è attualmente in uso, ad esempio "8082". Quindi seleziona l'opzione "All interfaces" e fai clic su "OK".

Configura il tuo dispositivo per utilizzare il proxy

Nel tuo dispositivo Android, vai al menu "Impostazioni".

Se il tuo dispositivo non è già connesso alla rete wireless che stai utilizzando, attiva il pulsante "Wi-Fi" e tocca il pulsante "Wi-Fi" per accedere al menu "Wi-Fi".

Nella tabella "Reti Wi-Fi", trova la tua rete e toccala per visualizzare il menu di connessione.

Tocca "Connetti". Se hai configurato una password, inseriscila e continua.

Una volta connesso, tieni premuto il pulsante di rete per far apparire il menu contestuale. Tocca "Modifica configurazione di rete".

Assicurati che la casella "Mostra opzioni avanzate" sia selezionata.

Modificare le "Impostazioni proxy" in "Manuale" toccando il pulsante.

Quindi inserisci l'IP del computer che esegue Burp nel "Proxy hostname". Inserisci il numero di porta configurato nella sezione "Proxy Listeners" in precedenza, in questo esempio "8082". Tocca "Salva".

Testare la configurazione

In Burp, vai alla scheda "Intercettazione proxy" e assicurati che l'intercettazione sia "attiva" (se il pulsante dice "L'intercettazione è disattivata", fai clic per attivare lo stato dell'intercettazione).

Apri il browser sul tuo dispositivo Android e vai a una pagina web HTTP (puoi visitare una pagina web HTTPS dopo aver installato il certificato CA di Burp nel tuo dispositivo Android).

La richiesta dovrebbe essere intercettata a Burp.


2

SandroProxy sembra essere migliore di Drony (dello stesso sviluppatore): puoi (ma non devi) visualizzare e analizzare comodamente il traffico nel browser del tuo PC.

Dovrebbe funzionare anche negli emulatori.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.