재학습/개발툴

[mitmproxy] 모바일웹 환경에서 헤더값을 추가하고싶다?

재이든 2023. 2. 20. 19:14
반응형

 

배경

일반적인 PC 웹 환경에서 헤더값을 추가하고싶을때는

크롬의 ModHeader 을 이용하여 손쉽게 헤더값을 추가할 수 있다.

 

그런데 모바일 웹 환경에서는 어떻게 추가할 수 있을까?

 

여러 방법이 있을 수 있겠지만,

나는 프록시환경을 사용하여 헤더값을 추가해주기 위해 

mitmproxy를 사용했다.

 

 

Mitmproxy

- 오픈소스

- 파이썬API를 사용하여 데이터 조작가능

- mitmproxy(콘솔), mitmweb(웹), mitmdump(cli) 총 세 가지의 실행환경 지원

https://mitmproxy.org/

 

mitmproxy - an interactive HTTPS proxy

Mitmproxy has a vibrant ecosystem of addons and tools building on it:

mitmproxy.org

 

1.설치하기 (맥환경)

brew install mitmproxy

 

2.실행하기

mitmproxy

- 실행해두면 프록시는 돌아간다.

- 기본 8080포트이다.

 

3.설정하기

* 이제 모바일웹에서 프록시가 먹여야한다.

* 맥과 아이폰 둘 다 같은 와이파이에 접속해있어야한다.

 

3-1. 아이폰 > 와이파이 > 설정 > 맨하단 '프록시구성' 클릭

3-2. '수동' 클릭

3-3. '서버'에는 맥의 IP주소 '포트'에는 8080을 입력

3-4. 아이폰에서 http://mitm.it 접근하여 아이폰에 해당하는 .pem을 다운로드

3-5. 설정 > 일반 > 하단 'VPN 및 관리' 클릭

3-6. mitmproxy클릭하여 설치

3-7. 설정 > 일반 > 맨하단 '인증서 신뢰 설정' > mitmproxy 토글 온

 

설정완료!

 

이제 웹을 접근해보면 mitmproxy콘솔에 접근하는 내역이 출력된다.

 

4.헤더값수정

* 헤더값을 수정하기위해서는 파이썬코드가 필요하다 (또 다른 방법이 있을 수 있다)

반응형

4-1.파이썬 코드 생성

test.py

from mitmproxy import ctx

class AddHeader:
    def request(self, flow):
        flow.request.headers["header_key"] = "header_value"

addons = [AddHeader()]

4-2.파이썬 코드로 mitmdump 실행

mitmproxy -s ./test.py

 

그렇다면 모바일웹에서 URL을 호출할 때 헤더값을 먹일 수 있게된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형