slik inspiserer du nettverkstrafikk ved hjelp av mitmproxy

author
4 minutes, 50 seconds Read

de fleste moderne apper er avhengige av Api-Er. «- Hvordan kan jeg få tilgang til katalogen din ? – Her er ET API for det. «Api-er er overalt, og det er ikke i ferd med å endre seg.

Å Bryte ned hver del av koden din i separate tjenester er (ofte) bra, men når det gjelder testing, kan denne separasjonen gjøre ting litt vanskeligere.

Front-end apps utviklere skriver ikke lenger koden som tar vare på kjernevirksomhetslogikken. Generelt er komplekse databehandlingsoppgaver gjort PÅ API-side og front-end-apper må bare vise hva SOM leveres AV API.

Derfor er det så viktig å kunne spore databanen fra appen til API. Når du tester og validerer en app, er det viktig å kunne svare på følgende spørsmål :

  • hvilke API-endepunkt(er) bruker appen for denne skjermen ?
  • hva finnes i SVARET fra API ?
  • hva skjer hvis API-responsstrukturen endres ?

ved slutten av denne opplæringen bør du kunne bruke mitmproxy til å svare på disse spørsmålene. Men du vil se, det er mange flere ting å gjøre med dette fantastiske verktøyet.

 hvordan mitmproxy fungerer

Før vi begynner…

du lurer kanskje på hvorfor du bør bruke mitmproxy i stedet for et annet verktøy. Og det er et godt spørsmål (ikke følg hype!).

mitt første argument er prisen : mitmproxy er gratis (utgitt UNDER Mit-Lisens) når en lisens For Charles Proxy koster rundt 50$.

også mitmproxy er et veldig kraftig verktøy : ikke bare gir det muligheter til å omskrive trafikk, men det lar deg også kjøre Python-skript for å endre forespørsler og svar. Dette er veldig nyttig når du prøver å teste kanttilfeller.

til slutt kan mitmproxy kjøre hvor som helst med et webgrensesnitt eller i kommandolinjen : uansett kontekst er det gode sjanser for at du vil kunne bruke den.

Installasjon

det finnes flere måter å installere mitmproxy på. Bruke brew er «standard» måte, men jeg personlig foretrekker å bruke Den Gjennom Docker : det forhindrer meg i å håndtere Python-versjoner og bidrar også til å holde Min Mac ren. Videre er det veldig enkelt å gjøre og ingen Spesiell Docker kunnskap er nødvendig.

for installasjonen, gjerne velge hvilken metode du føler deg mest komfortabel med.

Bruke brew

hvis du allerede har brew installert på datamaskinen din, og hvis alt går bra, bør det være nok å kjøre denne enkle kommandoen :

brew install mitmproxy

når mitmproxy er installert, kan du hoppe direkte til La oss kjøre mitmproxy-delen.

Bruke Docker

Å Kjøre mitmproxy ved hjelp av det offisielle Docker-bildet er like enkelt som å utføre følgende kommando :

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

for å unngå å måtte installere mitmproxys sertifikater på testenhetene hver gang, anbefales det sterkt å dele beholderens sertifikatmappe med en lokal (ved hjelp av param -v).

på Denne måten vil sertifikater vedvare selv etter At Docker-beholderen er drept.

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

for å forenkle bruken av denne kommandoen, legg til et alias i ~/.bash_profile :

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

og ikke glem å utføre source ~/.bash_profile etter at du har redigert filen.

la oss kjøre mitmproxy

uansett hvordan du installerte det, bør du nå kunne starte mitmproxy med kommandoen :

mitmproxy

hvis programmet starter så congrats! Du kan fortsette!

mitmproxy is alive

Nettverksinnstillinger på målenheten

mitmproxy kan kjøre som en omvendt proxy, som en gjennomsiktig proxy eller som en vanlig proxy. For å holde ting enkelt, vil vi bruke det som en vanlig proxy.

Bruke programmet på denne måten er sikkert enklere, men det betyr at du kan endre nettverksinnstillingene på målenheten for å sette en proxy.

Dette er veldig enkelt når du trenger å inspisere forespørsler fra en iOS-eller Android-enhet, men blir mer komplisert med enheter som ikke gir avanserte innstillinger for nettverk.

Avhengig av målenheten, bare følg den tilsvarende sub-tutorial :

  • angi en proxy på en iOS-enhet
  • angi en proxy på En Android-enhet
  • angi en proxy på en tvOS-enhet

Installere det selvsignerte sertifikatet

hvis du starter mitmproxy, godtar enheten FOR ØYEBLIKKET HTTP-trafikk, men avviser ALLE HTTPS-forespørsler som ikke kommer direkte fra serveren. Årsaken er enkel: enheten godtar ikke et selvsignert sertifikat med mindre du ber den om å gjøre det.

for å fange HTTPS-forespørsler må vi sette sertifikatet som brukes av mitmproxy på målenheten. Dette gjør at enheten din kan godta sikrede forespørsler som kommer fra datamaskinen din i stedet for den virkelige serveren.

kompleksiteten ved å installere et selvsignert sertifikat er egentlig avhengig av arten av enheten du må inspisere. I utgangspunktet går det fra «veldig enkelt» til «ikke mulig».

Avhengig av målenheten, bare følg den tilsvarende sub-tutorial :

  • installere et selvsignert sertifikat på en iOS-enhet
  • installere et selvsignert sertifikat på En Android-enhet
  • installere et selvsignert sertifikat på en tvOS-enhet

Sertifikat

la oss avskjære anrop

når sertifikatet er installert, er du klar til å avskjære anrop. Du kan starte mitmproxy igjen ved å bruke :

mitmproxy

på målenheten, åpne en app og sjekke om nye linjer vises i terminalen.

mitmproxy

hvis du ser forespørsler, så gratulerer! Alt er satt opp, og du kan begynne å inspisere webtrafikken som går gjennom telefonen eller nettbrettet.

Feilsøking

hvis ingenting vises og målenheten ser ut til å ikke ha internett-tilkobling, er det noen ting du bør sjekke :

  • kjører begge datamaskinen mitmproxy og målenheten på samme nettverk ?
  • har du prøvd å starte mitmproxy på nytt ?
  • er proxy-innstillingene riktig satt på målenheten ?
  • har du aktivert det selvsignerte sertifikatet på målenheten ?

for å gå videre

nå bør du vite alt du trenger for å installere mitmproxy og konfigurere målenheten. Hvis du vil gå videre, ta en titt på følgende innlegg :

  • Nyttige tips for mitmproxy
  • Lage skript for mitmproxy

Similar Posts

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.