mitmdump可以对接Python脚本,在Python脚本中可以修改请求报文和响应报文。
安装mitmdump
在命令行模式pip install mitmproxy就可以了
连接手机
直接用手机连接电脑的WiFi就可以了
第一步:手机连接WiFi
第二步:点击手机WiFi里的代理设置,选择手动设置代理
第三步:服务器ip填电脑的ip(不知道就在命令行模式下输入ipconfig查看),端口填8080(默认端口)
##经过以上三步,你的手机所有的网络请求,响应,都会流经mitmproxy。现在我们没有打开mitmproxy服务,所有手机暂时是上不了网的。
抓包
在命令行模式下输入mitmdump就可以启动mitmproxy服务。现在所有手机上的网络请求和响应都会被抓包。
##现在手机可以上网了,只要有网络请求和响应,在命令行界面上就会显示出来。
用Python脚本修改网络请求
脚本文件保存为 script.py (随便什么文件名都可以,只要是py后缀就可以了)
接下来编写 script.py
# 修改请求的话,函数名必须为request,参数必须为flow,不然执行不了。
# flow就是我们利用mitmproxy抓包抓取下来的请求报文。
def request(flow):
flow.request.url = 'http://httpbin.org/get'
现在启动mitmproxy服务和Python脚本,在命令行界面输入mitmdump -s script.py
虽然脚本里的函数只有一行代码,但是现在所有的网络请求url都被修改为了 httpbin.org/get 了,可以尝试利用手机浏览器输入任何网站。(如果打开app也是一样的道理,请求被发送到 httpbin.org/get 了,所以你手机里需要上网的app现在是用不了的。)
如果单单是修改url,有一些网站会拒绝响应。可以利用request函数修改更多的请求报文信息。
def request(flow):
flow.request.headers['user-agent'] = 'Mozilla/5.0 (Windows; U; Windows NT 5.