Обход прокси-сервера и захват данных веб-страницы с сервера с использованием HTTP-запроса GET с использованием mitmproxy в Python

Мне нужно обойти прокси с помощью mitmproxy и захватить веб-данные с помощью запроса GET. Я использую Windows 7 и python 2.7 и mitmproxy python.

Я попробовал следующий код:

#!/usr/bin/env python
"""
    This example shows how to build a proxy based on mitmproxy's Flow
    primitives.

    Note that request and response messages are not automatically replied to,
    so we need to implement handlers to do this.
"""
import sys,os
import os
import cStringIO
import threading
import thread
import exceptions
import gc
from libmproxy import proxy, flow
from libmproxy.proxy import config
from libmproxy.proxy import server
from libmproxy.proxy.server import ProxyServer
from libmproxy.platform.windows import TransparentProxy


class MyMaster(flow.FlowMaster):
    def run(self):
        try:
            flow.FlowMaster.run(self)
        except KeyboardInterrupt:
            self.shutdown()

    def responseheaders(context, flow):
        ct = flow.response.headers["Content-Type"]
        if ct and len(ct) > 0 and ct[0].startswith("application/"):
            flow.stream = True
            print "streaming"

    def handle_request(self, r):
        print r
        f = flow.FlowMaster.handle_request(self, r)
        if f:
            def run():
                r.reply()
                return f
            threading.Thread(target=run).start()
        else:
            return null

    def handle_response(self, r):
        f = flow.FlowMaster.handle_response(self, r)
        if f:
            def run():
                r.reply()
                return f
            threading.Thread(target=run).start()
        else:
            return null


config = proxy.config.ProxyConfig(
    #ca_file=os.path.expanduser("~\.mitmproxy\mitmproxy-ca.pem")
    confdir=os.path.realpath('.\\conf')#, mode="transparent"
)

gc.enable()

gc.set_threshold(250, 10, 10)

print gc.get_threshold()

state = flow.State()
server = ProxyServer(config, 8080)
#server = TransparentProxy()
m = MyMaster(server, state)

TransparentProxy().setup()

#proxifier = TransparentProxy()

#proxifier.start()

print "got here"

m.run();

Но получил некоторые ошибки:

confdir=os.path.realpath(r'C:\Users\rnive\Documents\certificates')      ``#,mode="transparent"
TypeError: __init__() got an unexpected keyword argument 'confdir'

Любая помощь в исправлении этой ошибки. Импортировал ЦС mitmproxy, дважды щелкнув файл mitmproxy-ca-cert.p12, загрузил mitm.it в браузере Chrome и получил что-то вроде:

Если вы видите это, трафик не проходит через mitmproxy.введите здесь описание изображения

Любая помощь в том, как настроить и как исправить TypeError!


person user3264821    schedule 16.03.2015    source источник


Ответы (1)


Проверьте настройки прокси в браузере. Сообщение об ошибке «…трафик не проходит через mitmproxy» должно исчезнуть. В Firefox перейдите в Параметры|Дополнительно|Сеть|Настройки. См. также здесь.

person Community    schedule 18.04.2015