답변:
mitmproxy를 사용해보십시오 .
mitmproxy는 SSL을 지원하는 HTTP 용 중간자 프록시입니다. 트래픽 흐름을 즉시 검사하고 편집 할 수있는 콘솔 인터페이스를 제공합니다.
mitmdump는 기능은 동일하지만 사용자 인터페이스는없는 mitmproxy의 명령 행 버전입니다. tcpdump를 HTTP로 생각하십시오.
로컬 호스트의 포트 4000에서 수신 대기하는 Jekyll Bootstrap 앱 의 예를 설정했습니다 . 트래픽을 가로 채려면 다음을 수행하십시오.
% mitmproxy --mode reverse:http://localhost:4000 -p 4001
그런 다음 웹 브라우저 ( http://localhost:4001
) 에서 포트 4001의 내 mitmproxy에 연결하면 다음 과 같은 결과가 나타납니다.
그런 다음 GET
결과를 선택 하여 해당 헤더 정보를 볼 수 있습니다 GET
.
상황에 따라 들어오는 HTTP 요청을 수락하고 나가는 HTTPS 요청을하는 프록시를 사용할 수 있습니다. 예를 들어, git
github.com 간의 트래픽을 캡처하고 싶었 습니다. 나는 mitmproxy를 사용 했다 :
mitmproxy -s httpser.py
어디에 httpser.py
:
def request(context, flow):
flow.request.scheme = 'https'
flow.request.port = 443
나는 다음 git
과 같이 달렸다 .
export http_proxy="http://127.0.0.1:8080/"
git clone http://github.com/oxplot/difftr
이제 wireshark
청취를 사용 localhost
하여 일반 트래픽을 캡처 할 수 있습니다. 프록시가 없으면 github은 git
HTTPS를 사용하도록 리디렉션 합니다.
mitmproxy
/mitmdump
에 Equalivant tcpdump
HTTPS이기 때문이다 mitmdump
. 단계는 다음과 같습니다.
mitmproxy
패키지를 설치하십시오 (macOS :) brew install mitmproxy
.다음 명령으로 mitmproxy CA 인증서 를 설치 하십시오 .
$ mitmdump --mode reverse:http://mitm.it/ -p 8080
$ wget --content-disposition http://localhost:8080/cert/pem
$ open mitmproxy-ca-cert.pem
# Open, install and mark the certificate as trusted.
다음은 리버스 프록시를 테스트하는 방법에 대한 간단한 테스트입니다.
mitmdump --mode reverse:https://example.com/ -p 4433
.다른 쉘에서 다음을 실행하십시오 curl https://localhost:4433
..
이제 페이지 소스를보고 mitmdump
명령은 다음과 같은 출력을 생성해야합니다.
Proxy server listening at http://*:4433
[::1]:49446: clientconnect
[::1]:49446: GET https://example.com/ HTTP/2.0
<< 200 1.24k
[::1]:49446: clientdisconnect
모든 트래픽에 대해 다음을 실행하십시오. mitmdump
또는 mitmproxy
.
자세한 내용은 mitmproxy
문서 페이지 를 참조하십시오.
macOS 를 사용하는 경우 호스트 간의 모든 HTTP 및 SSL / HTTPS 트래픽을 볼 수있는 Charles 프록시 앱 (GUI)도 있습니다.