2017-05-17 21 views
-1

학교 프로젝트의 경우 Kali Linux에서 설정을 완료합니다. 마지막으로, 우리는 mitmproxy를 설치할 수 있었고 이제 우리는 Raspberry Pi의 WLAN 클라이언트로 웹 사이트를 탐색하는 클라이언트 장치의 HTTPS 패키지를 가로 챌 수 있습니다. 우리의 목표 중 하나는 HTTPS 패키지의 이미지를 변경하는 것이고 우리는이 프로젝트에서이 작업을 실제로하고 싶습니다. 그리고 여기에 요점이 있는데, 필자는 Python 3 인라인 스크립트로이 작업을하지 않습니다. 이것은 내가 현재하고있는 것입니다.mitmproxy를 사용하여 HTTPResponse의 이미지를 변경하십시오.

#!/usr/bin/python3 
# modify_response.py 
import sys 
import os 
from io import StringIO 
from mitmproxy.net.http import encoding 
from mitmproxy.net.http import headers 
from mitmproxy.net import http 
from PIL.Image import core as _imaging 

def response(flow): 
    flow.response.headers["newheader"] = "response-flow" 

    if flow.response.headers.get("content-type", "").startswith("image"): 
     decoded_response = decode(flow.response) 
     with decoded(flow.respnse): 
     print('OK') 
     os.system('"./script2.py" "Decoded response: {}"'.format(decoded_response)) 
     try: 
      img = cStringIO.StringIO(open('6868132.png', 'rb').read()) 
      flow.response.content = img.getvalue() 
     except: 
      os.system('"./script2.py" "Error occured"') 

불행하게도,이 경우 조건도 "콘텐츠 유형"라는 헤더의 값이 "이미지"로 시작하는 요청 사실이 아니다 것으로 보인다.

저는이 웹 사이트를 여기에서 말하고 있습니다. https://sunu.in/manipulating-http-traffic-with-mitmproxy/ 나는 그들이 한 것과 똑같은 것을 성취하고자합니다. 그러나 그들은 아마도 꽤 오래된 버전의 mitmproxy를 사용했고 우리는 2.0.2를 사용하고 있습니다 (내가 잘못하지 않았다면).

저는 파이썬을 처음 접했고 온라인 코드를 이해하기 위해 온라인 튜토리얼을 몇 시간 동안 보냈습니다. HTTPResponse에서 이미지를 변경하면서 나를 도울 수 있습니까?

+0

를 참조 https://discourse.mitmproxy.org/t/change-images-in-httpresponse/481/3 –

+0

그래, 미안, 나는 잊었다 그것을 여기에서 언급하기 위해. 포럼에 제공된 솔루션을 통해 많은 도움이되었습니다. 그것들은 http 응답 패키지에서 그림을 교환하기 위해 사용했던 파이썬 스크립팅 라인이었습니다. 어쨌든 고맙습니다. – Paul

답변

0

나는 mitmproxy 포럼에 동일한 질문을 올렸고 거기에 답변을 받았습니다. 공급 대답은 내가 찾던 파이썬 스크립팅 라인 포함 :

def response(flow): 
    if flow.response.headers.get("content-type", "").startswith("image"): 
     img = open("file.png", "rb").read() 
     flow.response.content = img 
     flow.response.headers["content-type"] = "image/png"