pymiproxy er en lille og sød mand-in-the-middle proxy stand til at gøre HTTP og HTTP over SSL.
Indledning
pymiproxy er en lille, let, man-in-the-middle proxy stand til at udføre HTTP og HTTPS (eller SSL) inspektion. Fuldmagten giver en indbygget certifikat myndighed, er i stand til at generere certifikater til SSL-baserede destinationer. Pymiproxy er også Extensible og giver to metoder til at udvide proxy: metode overbelastning, og en plug interface. Den er ideel til situationer, hvor du er i akut behov for en kølig proxy at manipulere med udgange og / eller in-bundet HTTP data.
Installation
Bare køre følgende kommando ved kommandoprompten:
& Nbsp; sudo python setup.py installere
Anvendelse
Modulet giver et par eksempler i koden. Kort sagt, kan pymiproxy køres højre væk ved at udstede følgende kommando på kommando-prompt:
& Nbsp; python -m miproxy.proxy
Dette vil påberåbe pymiproxy med DebugInterceptor plugin, der blot udsender de første 100 bytes af hver anmodning og svar. Fuldmagten kører på port 8080 og lytter på alle adresser. Gå videre og give det en chance.
Udvidelse eller Implementering pymiproxy
Der er to måder at udvide den proxy:
- Udvikle og registrere en Interceptor plugin; eller
- Overbelaste mitm_request, og mitm_response metoder i ProxyHandler klassen.
Beslutningen om hvilken metode du vælger at bruge, er helt afhængig af, om du ønsker at skubbe de data, der opfanges gennem et sæt tilløbsbassiner eller ej.
Interceptor plugins
Der er i øjeblikket to typer interceptor plugins:
- RequestInterceptorPlugins: henrettet, før du sender anmodningen til den eksterne server; og
- ResponseInterceptorPlugins: henrettet, før du sender svaret tilbage til klienten.
Følgende flow er taget af pymiproxy i denne tilstand:
Modtaget 1. Anmodning Client
2. Anmodning Client parset
Anmodning 3. Client forarbejdet / transformeret efter ønske Interceptor plugins
4. Opdateret anmodning sendt til ekstern server
5. Svar modtaget af fjernserver
6. Reaktion behandles / forvandlet af Reaktion Interceptor plugins
7. Opdateret svar sendes til kunden
Du kan registrere så mange plugins, som du ønsker. Men husk på, at plugins udføres i den rækkefølge, de er registreret i. Pas på hvordan du registrerer din plugins hvis resultatet af en plugin er afhængig af resultatet af en anden.
Følgende er en simpel kode eksempel på, hvordan du kører proxy med plugins:
fra miproxy.proxy import RequestInterceptorPlugin, ResponseInterceptorPlugin, AsyncMitmProxy
klasse DebugInterceptor (RequestInterceptorPlugin, ResponseInterceptorPlugin):
& Nbsp; def do_request (self, data):
& Nbsp; print ">>% s '% Repr (data [100])
& Nbsp; tilbagevenden data
& Nbsp; def do_response (self, data):
& nbsp; print ">% s '% Repr (data [100])
& Nbsp; tilbagevenden data
& Nbsp; def mitm_response (self, data):
& Nbsp; print "
Krav :
- Python
- pyOpenSSL
Kommentarer ikke fundet