标签: mitmproxy

Mitmproxy url过滤器

我在Mac上使用mitmproxy.我想通过指定网址过滤流量."拦截"功能允许我在注意到过滤网址时暂停通信.我的问题是 - 如何在不暂停通信的情况下过滤流量?我希望它继续更新,而无需推送"a"或"A".

proxy networking filter mitmproxy server

10
推荐指数
1
解决办法
5679
查看次数

MITMPROXY 使输出可供人类读取到文件

我的系统:

Ubuntu 16.04
Mitmproxy version 3.0.4
Python version 3.5.2
Run Code Online (Sandbox Code Playgroud)

我已从mitmproxy服务器上的docs.mitmproxy.org成功安装。但现在我很困惑如何将日志 mitmproxy 保存到文件?我尝试使用mitmdump --mode transparent --showhost -p 9001 -w output_file

当我打开时output_file,它不是人类可读的。我阅读了文档并尝试了来自 mitmproxy 的 Github 的脚本,但没有任何线索。

有人知道如何将日志 mitmproxy 保存到文件中,但人类可读吗?
谢谢你!

proxy mitmproxy

9
推荐指数
1
解决办法
5550
查看次数

无法在Mac OS X上为透明代理设置端口转发

我正在尝试在我的Mac OS X Lion(10.7.5)上设置透明代理,因此我可以使用mitmproxy(拦截来自Android应用程序的SSL流量).我按照mitmproxy文档中的步骤在Mac OS X上使用pf设置端口转发,它们都没有任何错误:

$ sudo sysctl -w net.inet.ip.forwarding=1
Password:
net.inet.ip.forwarding: 0 -> 1

$ sudo pfctl -f pf.conf
No ALTQ support in kernel
ALTQ related functions disabled

$ sudo pfctl -e
No ALTQ support in kernel
ALTQ related functions disabled
pf enabled
Run Code Online (Sandbox Code Playgroud)

但它似乎没有任何影响.当我在浏览器中访问网站时,它会发出直接请求,并且不会通过我指定的端口.这是pf.conf文件(en1是我的wifi):

rdr on en1 inet proto tcp to any port 80 -> 127.0.0.1 port 4500
rdr on en1 inet proto tcp to any port 443 -> 127.0.0.1 …
Run Code Online (Sandbox Code Playgroud)

macos proxy networking portforwarding mitmproxy

8
推荐指数
1
解决办法
6822
查看次数

反向设计Xbox One Smartglass应用程序的API授权标头

由于微软决定将Xbox Live用户的个人资料页面置于登录墙之后,出于某些愚蠢的原因,我不得不寻找其他方法来确定Xbox Live用户是否在线.

为此,我使用了mitmproxy来确定iOS版Xbox One Smartglass应用程序的请求.似乎对于任何需要身份验证的请求,应用程序使用"XBL3.0 x = {computed auth token}"填充"身份验证"标头字段.

我已想出的是,应用程序通过执行一个POST请求来获取接入令牌https://login.live.com/oauth20_token.srf并传递形式的编码数据,其中所述属性中的一个是用户的"refresh_token".您可以通过使用mitmproxy查看任何这些请求来获取此刷新令牌.

然后,应用程序继续向https://user.auth.xboxlive.com/user/authenticate发送POST请求,传递我无法确定其来源的各种信息.以下是此请求的示例JSON有效内容:

{
    "Properties": {
        "AuthMethod": "RPS", 
        "RpsHeader": "<data removed for safety>", 
        "RpsTicket": "<data removed for safety>", 
        "SiteName": "user.auth.xboxlive.com"
    }, 
    "RelyingParty": "http://auth.xboxlive.com", 
    "TokenType": "JWT"
}
Run Code Online (Sandbox Code Playgroud)

此请求的响应包含以下JSON:

{
    "DisplayClaims": {
        "xui": [
            {
                "uhs": "<data removed for safety>"
            }
        ]
    }, 
    "IssueInstant": "2014-08-02T23:44:56.5868148Z", 
    "NotAfter": "2014-08-16T23:44:56.5868148Z", 
    "Token": "<data removed for safety>"
}
Run Code Online (Sandbox Code Playgroud)

连接在一起的"uhs"和"token"的内容似乎是"XBL3.0 x ="授权标头中缺少的身份验证令牌.

问题是我对微软的网络堆栈完全不熟悉,经过几个小时的搜索,我无法弄清楚"RpsHeader"和"RpsTicket"的价值来自哪里.

reverse-engineering xbox windows-live-id mitmproxy xbox-one

8
推荐指数
1
解决办法
2534
查看次数

如何让firefox通过mitmproxy连接网页?

我已经安装了mitmproxy(macOS Mojave)来通过浏览器监控完整的流量。但浏览器停止连接各个网页并给出警告

Did Not Connect: Potential Security Issue
Run Code Online (Sandbox Code Playgroud)

我无法继续。我怎样才能禁用这个块?我怎样才能作为例外继续浏览?

或者是否有其他更容易处理的工具来监控网络流量?

traffic mitmproxy

8
推荐指数
1
解决办法
7798
查看次数

通过mitmproxy运行docker容器

我正试图通过mitmproxy在另一个docker容器中运行来路由docker容器的所有流量.为了mitmproxy工作,我必须更改原始docker容器的网关IP.

这是我想要做的一个例子,但是我想把它限制在docker容器内部.

有关我如何能够做到这一点的任何想法?另外,我想避免在特权模式下运行两个docker容器中的任何一个.

security gateway docker mitmproxy

7
推荐指数
1
解决办法
1564
查看次数

如何使用 mitmproxy 将 HTTPS 流量重定向到本地 HTTP 服务器?

我正在尝试设置 mitmproxy,以便我可以从浏览器发出请求并让它从在http://localhost:3000https://{my-domain}运行的本地服务器返回响应,但我无法获取 https 请求来到达我的本地服务器。我看到来自 mitmproxy 的调试语句。另外,我可以让它适用于 http 流量,但不适用于 https。

我阅读了mitmproxy 插件文档api 文档 ,我已经安装了证书,并且可以通过代理监控 https。

我正在使用 Mitmproxy:4.0.4 和 Python:3.7.4

这是我的插件(local-redirect.py)以及我如何运行 mitmproxy:

from mitmproxy import ctx
import mitmproxy.http

class LocalRedirect:

  def __init__(self):
    print('Loaded redirect addon')

  def request(self, flow: mitmproxy.http.HTTPFlow):
    if 'my-actual-domain-here' in flow.request.pretty_host:
      ctx.log.info("pretty host is: %s" % flow.request.pretty_host)
      flow.request.host = "localhost"
      flow.request.port = 3000
      flow.request.scheme = 'http'

addons = [
  LocalRedirect()
]
Run Code Online (Sandbox Code Playgroud)
$ mitmdump -s local-redirect.py | grep pretty
Run Code Online (Sandbox Code Playgroud)

当我访问服务器上的 url 时,我看到了日志记录语句,但我的浏览器挂在请求上,并且没有向我的本地服务器发出请求。

networking mitmproxy

7
推荐指数
1
解决办法
7860
查看次数

有没有办法在后台以编程方式启动 mitmproxy v.7.0.2?

有没有办法在后台以编程方式启动 mitmproxy v.7.0.2?自 7.0.0 版本以来,ProxyConfig 和 ProxyServer 已被删除,并且下面的代码不起作用。

from mitmproxy.options import Options
from mitmproxy.proxy.config import ProxyConfig
from mitmproxy.proxy.server import ProxyServer
from mitmproxy.tools.dump import DumpMaster

import threading
import asyncio
import time

class Addon(object):
    def __init__(self):
        self.num = 1

    def request(self, flow):
        flow.request.headers["count"] = str(self.num)

    def response(self, flow):
        self.num = self.num + 1
        flow.response.headers["count"] = str(self.num)
        print(self.num)


# see source mitmproxy/master.py for details
def loop_in_thread(loop, m):
    asyncio.set_event_loop(loop)  # This is the key.
    m.run_loop(loop.run_forever)


if __name__ == "__main__":
    options = Options(listen_host='0.0.0.0', listen_port=8080, http2=True) …
Run Code Online (Sandbox Code Playgroud)

mitmproxy

7
推荐指数
1
解决办法
4264
查看次数

ImportError:没有名为'thread'的模块

当我在命令行中运行mitmproxy命令时,我收到以下错误.

% mitmproxy
Traceback (most recent call last):
  File "/usr/local/bin/mitmproxy", line 7, in <module>
    from libmproxy.main import mitmproxy
  File "/usr/local/lib/python3.5/site-packages/libmproxy/main.py", line 5, in <module>
    import thread
ImportError: No module named 'thread'
Run Code Online (Sandbox Code Playgroud)

我google了这个错误,发现了这个stackoverflow问答页面.

pydev importerror:没有名为thread的模块,pydev升级后调试不再有效

根据上面的页面,发生错误是因为模块thread" _thread"在python3中被重命名为" ".

所以,我知道是什么导致了这个错误,但那又是什么?

我现在不知道该怎么做才能摆脱这个错误.

我是python的新手.我刚刚安装了Python并pip进入我的mac OSX,如下所示,因为我想使用mitmproxy.

% which pip
/usr/local/bin/pip
% pip --version
pip 8.1.1 from /usr/local/lib/python3.5/site-packages (python 3.5)

% which python
/usr/bin/python
% which python3
/usr/local/bin/python3

% python --version
Python 2.7.10
% python3 --version
Python …
Run Code Online (Sandbox Code Playgroud)

python mitmproxy

6
推荐指数
3
解决办法
4万
查看次数

在 python 脚本中使用 mitmproxy

我是 mitmproxy 的新手。但我不知道如何在 python 脚本中使用它。

我想像库一样将 mitmproxy 放入我的 python 脚本中,并且还指定了端口或主机等所有内容,并在我的 python 脚本中对请求或响应进行了一些修改。所以当我像这样开始我的脚本时

python sample.py
Run Code Online (Sandbox Code Playgroud)

一切都将自动运行,而无需像这样从命令行运行 mitmproxy

mitmproxy -s sample.py
Run Code Online (Sandbox Code Playgroud)

谢谢阅读。

python mitmproxy

6
推荐指数
2
解决办法
9929
查看次数