Python实现抓包
- Python
- 18小时前
- 3热度
- 0评论
mitmproxy,可实现代理电脑、手机浏览器的http、https协议,截取请求和响应报文,可篡改。实现中间人攻击
1 安装mitmproxy
win10,python3.6以上,安装5.0.1版本
pip install mitmproxy==5.0.12 简单使用
以下三个命令是可执行程序(不是python程序!),需要在命令行下使用
mitmproxy:命令行界面,可交互式检查和修改http数据流,不支持windows
mitmweb:基于web界面的mitmproxy接口,可以看到电脑尚实时的请求数据,可过滤请求和查看请求数据
mitmweb -p 8888 # web网站端口,不写默认8080 --listen-host http://*:8080 # 监听的地址,默认http://*:8080mitmdump:命令行界面,不能交互,但可以指定使用脚本完成定制化功能开发
mitmdump -p 8888 # 代理的端口,默认8080,需要先在windows下配置proxy信息 -s xx.py # 使用哪个脚本
3 脚本指南
主要就是request、response函数
from mitmproxy import ctx
def request(flow):
# 记录log
ctx.log.info('request url: {}'.format(flow.request.url))
# 修改请求地址
flow.request.url = 'http://cn.bing.com'
def response(flow):
# 获取响应并替换响应内容
text = flow.response.get_text()
ctx.log.info("response: {}".format(text))
text = text.replace("搜索", "请使用谷歌")
flow.response.set_text(text)4 代理方式
【win10】pc代理:
打开设置,搜索代理,手动设置代理,开启使用代理服务器,地址写127.0.0.1、端口填写8080,保存
命令行启动mitmdump
mitmdump打开网页
http://mitm.it/,如果出现了if you can see this, traffic is not....之类的字样说明失败了,需要重新检查一下哪里错了,否则就是对了还是在刚才的网站,安装你操作系统对应的证书,不然无法监控https,安装过程一直点下一步就行,其他的不要点
移动端
- 设置——>WLAN——>长按已连接的网线网络——>修改网络——>高级选项——>代理(手动),代理服务器主机名是本机ipV4的地址
- 下载安装证书:手机浏览器访问网页会提示下面内容,所以同样需要下载安装证书,和pc端一样的下载方式。下载完成后,点击证书安装即可(证书名称随意取)。