반응형

burpsuite 으로 websocket 요청 및 응답값을 볼수도 있고, 캡쳐도 할수 있습니다만...match and replace 기능을 제공하지 않습니다.

websocket 통신데이터의 경우 중간에 인터셉트해서 수동으로 변조하고 다시 날리면 원하는 결과를 얻기 힘들기 때문에, 자동으로 변조해주는 match and replace 기능이 필요하죠.

 

mitmproxy 를 이용하면 match and replace가 가능합니다.

예컨데, websocket 통신 request 데이터 중 "clientVersion":"0.0.10" 문자열을 "clientVersion":"1.0.0" 로 match and replace 하고 싶은 경우 다음과 같은 파이썬 스크립트를 만들어주고,

- mitmproxywebsockets.py

import mitmproxy
from mitmproxy import ctx, http

class WebSocketModifier:
    def websocket_message(self, flow: mitmproxy.http.HTTPFlow):
        message = flow.websocket.messages[-1]

        if message.from_client:
            ctx.log.info("Modifying WebSocket message...")
            old_content = message.content

            if b'"clientVersion":"0.0.10"' in old_content:
                new_content = old_content.replace(b'"clientVersion":"0.0.10"', b'"clientVersion":"1.0.0"')
                message.content = new_content

addons = [
    WebSocketModifier()
]

 

 

mitmproxy를 구동시켜줍니다.

mitmweb -s mitmproxywebsockets.py -p 8082

또는

mitmdump -s mitmproxywebsockets.py -p 8082

 

반응형

+ Recent posts