jak sprawdzić ruch sieciowy za pomocą mitmproxy

author
5 minutes, 17 seconds Read

większość nowoczesnych aplikacji opiera się na interfejsach API. „- Jak Mogę uzyskać dostęp do katalogu ? – Oto API do tego. „API są wszędzie i to się nie zmieni.

podział każdej części kodu na oddzielne usługi jest (często) dobry, ale jeśli chodzi o testowanie, ten rozdział może nieco utrudnić sprawę.

programiści aplikacji Front-end nie piszą już kodu, który zajmuje się podstawową logiką biznesową. Ogólnie rzecz biorąc, złożone zadania przetwarzania danych są wykonywane po stronie API, a aplikacje front-end muszą tylko wyświetlać to, co jest dostarczane przez API.

dlatego tak ważne jest, aby móc odtworzyć ścieżkę danych z aplikacji do API. Podczas testowania i walidacji aplikacji bardzo ważna jest możliwość odpowiedzi na następujące pytania:

  • jakich punktów końcowych API używa aplikacja na tym ekranie ?
  • co zawiera odpowiedź dostarczana przez API ?
  • co się stanie, jeśli zmieni się struktura odpowiedzi API?

pod koniec tego samouczka powinieneś być w stanie użyć mitmproxy, aby odpowiedzieć na te pytania. Ale zobaczysz, jest wiele więcej rzeczy do zrobienia z tym niesamowitym narzędziem.

jak działa mitmproxy

zanim zaczniemy…

możesz się zastanawiać, dlaczego powinieneś używać mitmproxy zamiast innego narzędzia. I to jest dobre pytanie (nie podążaj za szumem!).

moim pierwszym argumentem jest cena: mitmproxy jest darmowy (wydany na licencji MIT), gdy licencja na Charles Proxy kosztuje około 50$.

również mitmproxy jest bardzo potężnym narzędziem : nie tylko zapewnia opcje przepisywania ruchu, ale także pozwala na uruchamianie skryptów Pythona w celu zmiany żądań i odpowiedzi. Jest to bardzo pomocne podczas próby testowania przypadków edge.

aby zakończyć, mitmproxy może działać w dowolnym miejscu za pomocą interfejsu internetowego lub Wiersza poleceń : bez względu na kontekst, istnieje duża szansa, że będziesz mógł go użyć.

instalacja

istnieje wiele sposobów instalacji mitmproxy. Korzystanie z brew jest „standardowym” sposobem, ale osobiście wolę używać go przez Docker : uniemożliwia mi to radzenie sobie z wersjami Pythona, a także pomaga utrzymać mój komputer Mac w czystości. Co więcej, jest to naprawdę łatwe do zrobienia i nie jest wymagana żadna szczególna wiedza na temat Dockera.

w przypadku instalacji możesz wybrać dowolną metodę, z którą czujesz się najbardziej komfortowo.

używanie brew

jeśli masz już zainstalowany brew na swoim komputerze i jeśli wszystko pójdzie dobrze, uruchomienie tego prostego polecenia powinno wystarczyć do wykonania zadania :

brew install mitmproxy

po zainstalowaniu mitmproxy możesz bezpośrednio przejść do sekcji Let ’ s run mitmproxy.

używanie Dockera

uruchomienie mitmproxy przy użyciu oficjalnego obrazu Dockera jest tak proste, jak wykonanie następującego polecenia :

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

aby uniknąć konieczności instalowania certyfikatów mitmproxy na urządzeniach testowych za każdym razem, zdecydowanie zaleca się współdzielenie folderu certyfikatu kontenera z folderem lokalnym (używając parametru -v).

w ten sposób certyfikaty będą utrzymywane nawet po zabiciu kontenera Dockera.

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

aby uprościć użycie tego polecenia, Dodaj alias do ~/.bash_profile :

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

i nie zapomnij wykonać source ~/.bash_profile po edycji pliku.

Uruchom mitmproxy

bez względu na to, jak go zainstalowałeś, powinieneś teraz móc uruchomić mitmproxy za pomocą polecenia :

mitmproxy

jeśli program się uruchomi, gratulacje! Możesz iść dalej!

mitmproxy jest żywy

Ustawienia sieciowe na urządzeniu docelowym

mitmproxy może działać jako odwrotne proxy, jako przezroczyste proxy lub jako zwykłe proxy. Aby wszystko było proste, użyjemy go jako zwykłego serwera proxy.

Korzystanie z programu w ten sposób jest z pewnością łatwiejsze, ale oznacza to, że możesz zmienić ustawienia sieciowe urządzenia docelowego w celu ustawienia proxy.

jest to naprawdę proste, gdy musisz sprawdzić żądania z urządzenia z systemem iOS lub Android, ale staje się bardziej skomplikowane z urządzeniami, które nie zapewniają zaawansowanych ustawień sieci.

w zależności od urządzenia docelowego, po prostu postępuj zgodnie z odpowiednim pod-tutorialem :

  • ustawianie serwera proxy na urządzeniu z systemem iOS
  • ustawianie serwera proxy na urządzeniu z systemem Android
  • ustawianie serwera proxy na urządzeniu tvOS

instalowanie certyfikatu z podpisem własnym

w tym momencie, jeśli uruchomisz mitmproxy, Twoje urządzenie zaakceptuje ruch HTTP, ale odrzuci wszelkie żądania HTTPS, które nie przychodziły bezpośrednio z serwera. Powód jest prosty: Twoje urządzenie nie zaakceptuje żadnego podpisanego samodzielnie certyfikatu, chyba że go o to poprosisz.

aby przechwycić żądania HTTPS, musimy ustawić certyfikat używany przez mitmproxy na urządzeniu docelowym. Pozwoli to urządzeniu na przyjmowanie zabezpieczonych żądań pochodzących z komputera, a nie z prawdziwego serwera.

złożoność instalacji certyfikatu z podpisem własnym naprawdę zależy od charakteru urządzenia, które należy sprawdzić. Zasadniczo przechodzi od ” bardzo prostego „do ” niemożliwego”.

w zależności od urządzenia docelowego, po prostu postępuj zgodnie z odpowiednim pod-tutorialem :

  • instalowanie certyfikatu z podpisem własnym na urządzeniu z systemem iOS
  • instalowanie certyfikatu z podpisem własnym na urządzeniu z systemem Android
  • instalowanie certyfikatu z podpisem własnym na urządzeniu tvOS

certyfikat

przechwytywanie połączeń

po zainstalowaniu certyfikatu jesteś gotowy do przechwytywania połączeń. Możesz ponownie uruchomić mitmproxy używając :

mitmproxy

na urządzeniu docelowym otwórz aplikację i sprawdź, czy w terminalu pojawiają się nowe linie.

mitmproxy

jeśli widzisz prośby, gratulacje! Wszystko jest skonfigurowane i możesz zacząć sprawdzać ruch internetowy przechodzący przez telefon lub tablet.

Rozwiązywanie problemów

jeśli nic się nie pojawia, a urządzenie docelowe wydaje się nie mieć połączenia z Internetem, oto kilka rzeczy, które powinieneś sprawdzić :

  • czy zarówno komputer z systemem mitmproxy, jak i urządzenie docelowe są w tej samej sieci ?
  • próbowałeś ponownie uruchomić mitmproxy ?
  • czy ustawienia proxy są poprawnie ustawione na urządzeniu docelowym ?
  • czy włączyłeś certyfikat z podpisem własnym na urządzeniu docelowym ?

aby przejść dalej

teraz powinieneś wiedzieć wszystko, czego potrzebujesz, aby zainstalować mitmproxy i skonfigurować urządzenie docelowe. Jeśli chcesz pójść dalej, spójrz na następujące posty :

  • przydatne wskazówki dla mitmproxy
  • tworzenie skryptów dla mitmproxy

Similar Posts

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.