hoe netwerkverkeer te inspecteren met mitmproxy

author
5 minutes, 7 seconds Read

de meeste moderne apps vertrouwen op API ‘ s. “- Hoe kan ik toegang krijgen tot uw catalogus ? Hier is een API voor. “API’ s zijn overal en dat gaat niet veranderen.

het afbreken van elk deel van je code in aparte services is (vaak) goed, maar als het gaat om testen, kan deze scheiding de dingen een beetje moeilijker maken.

Front-end apps ontwikkelaars schrijven niet meer de code die zorgt voor de core business logica. Over het algemeen, complexe data-processing taken worden gedaan op API-side en front-end apps gewoon weer te geven wat wordt geleverd door de API.

daarom is het zo belangrijk om het datapad van de app naar de API te kunnen traceren. Wanneer u een app test en valideert, is het van cruciaal belang dat u de volgende vragen kunt beantwoorden::

  • welke API-endpoint (s) gebruikt de app voor dit scherm ?
  • wat staat er in het antwoord van de API ?
  • wat gebeurt er als de API-reactiestructuur verandert ?

aan het einde van deze handleiding kunt u mitmproxy gebruiken om deze vragen te beantwoorden. Maar je zult zien, er zijn veel meer dingen te doen met deze geweldige tool.

Hoe werkt mitmproxy

voordat we beginnen …

vraagt u zich misschien af waarom u mitmproxy zou moeten gebruiken in plaats van een ander gereedschap. En dat is een goede vraag(volg de hype niet!).

mijn eerste argument is de prijs : mitmproxy is vrij (uitgebracht onder MIT-licentie) wanneer een licentie voor Charles Proxy ongeveer 50$kost.

ook mitmproxy is een zeer krachtig hulpmiddel : niet alleen biedt het opties om verkeer te herschrijven, maar het stelt u ook in staat om Python scripts uit te voeren om verzoeken en reacties te wijzigen. Dit is echt nuttig wanneer het proberen om edge-cases te testen.

om te eindigen, mitmproxy kan overal draaien met een webinterface of in de opdrachtregel : ongeacht de context, er zijn goede kansen dat u het kunt gebruiken.

installatie

er zijn meerdere manieren om mitmproxy te installeren. Met behulp van brew is de “standaard” manier, maar ik persoonlijk liever met behulp van het via Docker : het voorkomt dat ik omgaan met Python versies en helpt ook om mijn Mac schoon te houden. Bovendien, het is echt gemakkelijk te doen en geen bepaalde Docker kennis is vereist.

voor de installatie, voel je vrij om elke methode te kiezen waarmee je je het meest comfortabel voelt.

gebruik brew

als u brew al op uw computer hebt geïnstalleerd, en als alles goed gaat, moet het uitvoeren van dit eenvoudige commando voldoende zijn om de taak uit te voeren :

brew install mitmproxy

zodra mitmproxy is geà nstalleerd kunt u direct springen Naar de Let ‘ s run mitmproxy sectie.

Docker

het uitvoeren van mitmproxy met behulp van de officiële Docker image is zo eenvoudig als het uitvoeren van het volgende commando :

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

om te voorkomen dat de certificaten van mitmproxy elke keer op uw testapparaten moeten worden geïnstalleerd, is het sterk aangeraden om de certificaatmap van de container te delen met een lokale (gebruikmakend van de -v param).

op deze manier zullen certificaten behouden blijven, zelfs nadat uw Docker container is uitgeschakeld.

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

om het gebruik van dit commando te vereenvoudigen, voegt u een alias toe aan uw ~/.bash_profile :

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

en vergeet niet om source ~/.bash_profile uit te voeren nadat u het bestand bewerkt hebt.

laten we mitmproxy

uitvoeren ongeacht hoe u het hebt geïnstalleerd, u zou nu in staat moeten zijn om mitmproxy te starten met het commando :

mitmproxy

als het programma begint dan gefeliciteerd! Je kunt doorgaan!

mitmproxy leeft

netwerkinstellingen op het doelapparaat

mitmproxy kan draaien als een reverse proxy, als een transparante proxy of als een reguliere proxy. Om het simpel te houden, gebruiken we het als een reguliere proxy.

het programma op deze manier gebruiken is zeker gemakkelijker, maar het betekent dat u de netwerkinstellingen van het doelapparaat kunt wijzigen om een proxy in te stellen.

dit is heel eenvoudig wanneer u aanvragen van een iOS-of Android-apparaat moet inspecteren, maar wordt ingewikkelder met apparaten die geen geavanceerde instellingen voor het netwerk bieden.

afhankelijk van uw doelapparaat, volg gewoon de bijbehorende sub-tutorial :

  • een proxy instellen op een iOS-apparaat
  • een proxy instellen op een Android-apparaat
  • een proxy instellen op een tvOS-apparaat

het zelfondertekende certificaat installeren

op dit moment zal uw apparaat HTTP-verkeer accepteren, maar elk HTTPS-verzoek weigeren dat niet rechtstreeks van de server komt. De reden is eenvoudig: uw apparaat zal geen Zelf-ondertekend certificaat accepteren, tenzij u het vraagt om dit te doen.

om HTTPS-verzoeken te onderscheppen, moeten we het certificaat instellen dat mitmproxy gebruikt op het doelapparaat. Hierdoor kan uw apparaat beveiligde verzoeken accepteren die van uw computer komen in plaats van de echte server.

de complexiteit van het installeren van een zelfondertekend certificaat hangt echt af van de aard van het apparaat dat u moet inspecteren. Kortom, het gaat van “zeer eenvoudig” naar “niet mogelijk”.

afhankelijk van uw doelapparaat, volg gewoon de bijbehorende sub-tutorial :

  • een zelfondertekend certificaat installeren op een iOS-apparaat
  • een zelfondertekend certificaat installeren op een Android-apparaat
  • een zelfondertekend certificaat installeren op een tvOS-apparaat

certificaat

laten we gesprekken

onderscheppen zodra het certificaat is geïnstalleerd, bent u klaar om gesprekken te onderscheppen. U kunt mitmproxy opnieuw starten met :

mitmproxy

op het doelapparaat, open een app en controleer of nieuwe lijnen verschijnen in de terminal.

mitmproxy

als je Verzoeken ziet, dan gefeliciteerd! Alles is ingesteld en u kunt beginnen met het inspecteren van het webverkeer dat door uw telefoon of tablet gaat.

problemen oplossen

als er niets verschijnt en het doelapparaat geen internetverbinding lijkt te hebben, zijn hier een paar dingen die u moet controleren :

  • zijn zowel de computer met mitmproxy en het doelapparaat op hetzelfde netwerk ?
  • hebt u geprobeerd mitmproxy opnieuw op te starten ?
  • zijn de proxy-instellingen correct ingesteld op het doelapparaat ?
  • hebt u het zelfondertekende certificaat op het doelapparaat ingeschakeld ?

om verder te gaan

nu moet u alles weten wat u nodig hebt om mitmproxy te installeren en uw doelapparaat te configureren. Als u verder wilt gaan, neem een kijkje op de volgende berichten :

  • handige tips voor mitmproxy
  • scripts maken voor mitmproxy

Similar Posts

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.