我正在寻找一种命令行工具,该工具可以拦截HTTP / HTTPS请求,提取诸如以下内容的信息:(内容,目标等),执行各种分析任务,最后确定是否应删除该请求。法律要求必须转发给申请。
一种工具,在本质上是相似的tcpdump
,Wireshark的,或Snort的,但在HTTP级别运行。
我正在寻找一种命令行工具,该工具可以拦截HTTP / HTTPS请求,提取诸如以下内容的信息:(内容,目标等),执行各种分析任务,最后确定是否应删除该请求。法律要求必须转发给申请。
一种工具,在本质上是相似的tcpdump
,Wireshark的,或Snort的,但在HTTP级别运行。
Answers:
尝试mitmproxy。
mitmproxy是HTTP的支持SSL的中间人代理。它提供了一个控制台界面,该界面允许即时检查和编辑交通流。
mitmdump是mitmproxy的命令行版本,具有相同的功能,但没有用户界面。将tcpdump用于HTTP。
我设置了一个示例Jekyll Bootstrap应用,该应用正在本地主机上的端口4000上监听。为了拦截流量,我将执行以下操作:
% mitmproxy --mode reverse:http://localhost:4000 -p 4001
然后从我的Web浏览器(http://localhost:4001
)在端口4001上连接到我的mitmproxy ,导致出现mitmproxy:
然后,您可以选择任何GET
结果以查看与此相关的标题信息GET
:
在某些情况下,您可以使用接受传入HTTP请求并发出传出HTTPS请求的代理。举例来说,我想捕获git
和github.com 之间的流量。我用过mitmproxy:
mitmproxy -s httpser.py
在哪里httpser.py
:
def request(context, flow):
flow.request.scheme = 'https'
flow.request.port = 443
然后我git
像这样跑:
export http_proxy="http://127.0.0.1:8080/"
git clone http://github.com/oxplot/difftr
现在,使用wireshark
监听localhost
,一个可以捕捉普通的流量。没有代理,github将重定向git
到使用HTTPS。
mitmproxy
/mitmdump
tcpdump
对于HTTPS 等于mitmdump
。步骤如下:
mitmproxy
软件包(macOS:)brew install mitmproxy
。通过以下命令安装mitmproxy CA证书:
$ mitmdump --mode reverse:http://mitm.it/ -p 8080
$ wget --content-disposition http://localhost:8080/cert/pem
$ open mitmproxy-ca-cert.pem
# Open, install and mark the certificate as trusted.
现在,这是关于如何测试反向代理的简单测试:
mitmdump --mode reverse:https://example.com/ -p 4433
。在另一个外壳中,运行:curl https://localhost:4433
。
现在,您应该看到页面源代码,并且mitmdump
命令应该产生如下输出:
Proxy server listening at http://*:4433
[::1]:49446: clientconnect
[::1]:49446: GET https://example.com/ HTTP/2.0
<< 200 1.24k
[::1]:49446: clientdisconnect
对于所有流量,只需运行:mitmdump
或mitmproxy
。
请参阅:mitmproxy
文档页面以获取更多详细信息。
如果您使用的是macOS,还可以使用Charles Proxy应用(GUI)来查看主机之间的所有HTTP和SSL / HTTPS通信。