cum să inspectați traficul de rețea folosind mitmproxy

author
5 minutes, 35 seconds Read

majoritatea aplicațiilor moderne se bazează pe API-uri. „- Cum pot accesa catalogul tău ? – Iată un API pentru asta. „API-urile sunt peste tot și asta nu este pe cale să se schimbe.

descompunerea fiecărei părți a codului dvs. în servicii separate este (adesea) bună, dar când vine vorba de testare, această separare ar putea îngreuna lucrurile.

dezvoltatorii de aplicații Front-end nu mai scriu codul care are grijă de logica de bază a afacerii. În general, sarcinile complexe de procesare a datelor se fac pe partea API și aplicațiile front-end trebuie doar să afișeze ceea ce este furnizat de API.

acesta este motivul pentru care este atât de important să puteți relua calea de date de la aplicație la API. Când testați și validați o aplicație, este esențial să puteți răspunde la următoarele întrebări:

  • ce API-endpoint(E) este aplicația Folosind pentru acest ecran ?
  • ce este conținut în răspunsul furnizat de API ?
  • ce se întâmplă dacă structura de răspuns API se schimbă ?

până la sfârșitul acestui tutorial, ar trebui să puteți utiliza mitmproxy pentru a răspunde la aceste întrebări. Dar veți vedea, există multe alte lucruri de făcut cu acest instrument uimitor.

cum funcționează mitmproxy

înainte de a începe…

s-ar putea să vă întrebați de ce ar trebui să utilizați mitmproxy în loc de un alt instrument. Și aceasta este o întrebare bună (nu urmați hype-ul!).

primul meu argument este prețul : mitmproxy este gratuit (eliberat sub licență MIT) atunci când o licență pentru Charles Proxy costă în jur de 50$.

de asemenea, mitmproxy este un instrument foarte puternic : nu numai că oferă opțiuni pentru rescrierea traficului, dar vă permite, de asemenea, să rulați scripturi Python pentru a modifica cererile și răspunsurile. Acest lucru este foarte util atunci când încercați să testați cazurile de margine.

pentru a termina, mitmproxy poate rula oriunde cu o interfață web sau în linia de comandă : indiferent de context, există șanse mari să îl puteți folosi.

instalare

există mai multe moduri de a instala mitmproxy. Utilizarea brew este modul ” standard „, dar eu personal prefer folosind-o prin Docker : mă împiedică să mă ocup de versiunile Python și, de asemenea, ajută la menținerea Mac-ului meu curat. Mai mult, este foarte ușor de făcut și nu este necesară nicio cunoaștere specială a Docker-ului.

pentru instalare, nu ezitați să alegeți orice metodă vă simțiți cel mai confortabil cu.

utilizarea brew

dacă aveți deja brew instalat pe computer și dacă totul merge bine, rularea acestei comenzi simple ar trebui să fie suficientă pentru a face treaba :

brew install mitmproxy

odată ce mitmproxy este instalat, puteți sări direct la secțiunea let ‘ s run mitmproxy.

utilizarea Docker

rularea mitmproxy folosind imaginea oficială Docker este la fel de simplă ca executarea următoarei comenzi :

docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy:4.0.4

pentru a evita instalarea certificatelor mitmproxy pe dispozitivele dvs. de testare de fiecare dată, este recomandat să partajați folderul de certificate al containerului cu unul local (folosind -v param).

în acest fel, certificatele vor fi persistat chiar și după container Docker este ucis.

docker run --rm -it -v /your/local/folder:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy:4.0.4

pentru a simplifica utilizarea acestei comenzi, Adăugați un alias în ~/.bash_profile :

alias mitmproxy='docker run --rm -it -v /your/local/folder:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy:4.0.4'

și nu uitați să executați source ~/.bash_profile după ce ați editat fișierul.

să rulăm mitmproxy

indiferent de modul în care l-ați instalat, acum ar trebui să puteți porni mitmproxy cu comanda :

mitmproxy

dacă programul începe, atunci felicitări! Poți să continui!

mitmproxy este viu

setări de rețea pe dispozitivul țintă

mitmproxy poate rula ca un proxy invers, ca un proxy transparent sau ca un proxy regulat. Pentru a păstra lucrurile simple, îl vom folosi ca un proxy obișnuit.

utilizarea programului în acest fel este cu siguranță mai ușoară, dar înseamnă că puteți modifica setările de rețea ale dispozitivului țintă pentru a seta un proxy.

acest lucru este foarte simplu atunci când aveți nevoie pentru a inspecta cererile de la un dispozitiv iOS sau Android, dar devine mai complicat cu dispozitive care nu oferă setări avansate pentru rețea.

în funcție de dispozitivul țintă, trebuie doar să urmați sub-tutorialul corespunzător :

  • setarea unui proxy pe un dispozitiv iOS
  • setarea unui proxy pe un dispozitiv Android
  • setarea unui proxy pe un dispozitiv tvOS

instalarea certificatului auto-semnat

în acest moment, dacă porniți mitmproxy, dispozitivul dvs. va accepta traficul HTTP, dar va respinge orice solicitare HTTPS care nu vine direct de la serverul. Motivul este simplu : dispozitivul dvs. nu va accepta niciun certificat auto-semnat decât dacă îi cereți acest lucru.

pentru a intercepta cererile HTTPS, trebuie să setăm certificatul utilizat de mitmproxy pe dispozitivul țintă. Acest lucru va permite dispozitivului dvs. să accepte solicitări securizate care provin de pe computer în loc de serverul real.

complexitatea instalării unui certificat auto-semnat depinde într-adevăr de natura dispozitivului pe care trebuie să îl inspectați. Practic, merge de la „foarte simplu” la „imposibil”.

în funcție de dispozitivul țintă, trebuie doar să urmați sub-tutorialul corespunzător :

  • instalarea unui certificat auto-semnat pe un dispozitiv iOS
  • instalarea unui certificat auto-semnat pe un dispozitiv Android
  • instalarea unui certificat auto-semnat pe un dispozitiv tvOS

certificat

să interceptăm apelurile

odată ce certificatul este instalat, sunteți gata să interceptați apelurile. Puteți începe mitmproxy încă o dată folosind :

mitmproxy

pe dispozitivul țintă, deschideți o aplicație și verificați dacă apar linii noi în terminal.

mitmproxy

dacă vedeți cereri, atunci felicitări! Totul este configurat și puteți începe să inspectați traficul web care trece prin telefon sau tabletă.

depanare

dacă nu apare nimic și dispozitivul țintă pare să nu aibă conexiune la internet, iată câteva lucruri pe care ar trebui să le verificați :

  • sunt atât computerul care rulează mitmproxy și dispozitivul țintă în aceeași rețea ?
  • ați încercat să reporniți mitmproxy ?
  • setările proxy sunt setate corect pe dispozitivul țintă ?
  • ați activat certificatul auto-semnat pe dispozitivul țintă ?

pentru a merge mai departe

acum ar trebui să știi tot ce ai nevoie pentru a instala mitmproxy și configura dispozitivul țintă. Dacă doriți să mergeți mai departe, aruncați o privire la următoarele postări :

  • sfaturi utile pentru mitmproxy
  • crearea de scripturi pentru mitmproxy

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată.