알게된 배경

교내에서 모바일 개발을 알려주시는 선생님한테 burpsuite과 frida를 연결해서 사용하고 있다는 이야기를 드리자 선생님께서 MITMProxy도 한번 써보라고 권해주셨다. 해당 일을 계기로 바로 MITM 프록시를 사용하고 질문하면서 알게된 내용을 정리해 볼까한다.
MITM이란?
burpsuite과 같이 네트워크 트래픽을 감지하고 intercept하여 외부로 나가는 트래픽을 분석할 수 있는 도구이다.
MITM 설치
brew install mitm
pip3 install mitmMITM 사용법
from mitmproxy import http
from urllib.parse import urlparse
mapping = {
"https://server-api.com": "http://localhost:8080"
}
def request(flow: http.HTTPFlow) -> None:
for org_url, redirect_url in mapping.items():
org_parsed = urlparse(org_url)
if flow.request.pretty_host == org_parsed.hostname:
redirect_parsed = urlparse(redirect_url)
flow.request.host = redirect_parsed.hostname
if redirect_parsed.port is not None:
flow.request.port = redirect_parsed.port
else:
if redirect_parsed.scheme == "https":
flow.request.port = 443
else:
flow.request.port = 80
flow.request.scheme = redirect_parsed.scheme