骚操作"破解"App
mitmproxy就是用于MITM的proxy,MITM即中间人攻击(Man-in-the-middle attack)。用于中间人攻击的代理首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次会实时查、记录其截获的数据或篡改数据,引发服务端或客户端特定的行为。
不同于Fiddler或Wireshark等抓包工具,mitmproxy不仅可以截获请求帮助开发者查看、分析,还可以通过自定义脚本进行二次开发。
利用Fiddler可以过滤出浏览器对某个特定URL的请求,并查看、分析其数据,
但实现不了高度定制化的需求,类似于:“截获对浏览器对该URL的请求,将返回内容置空,并将真实的返回内容存到某个数据库,出现异常时发出邮件通知”。而对于mitmproxy,这样的需求可以通过载入自定义python脚本轻松实现。
但mitmproxy并不会真的对无辜的人发起中间人攻击,由于mitmproxy工作在HTTP层,而当前HTTPS的普及让客户端拥有了检测并规避中间人攻击的能力,所以要让mitmproxy 能够正常工作,必须要让客户端(APP 或浏览器)主动信任 mitmproxy 的SSL证书,或忽略证书异常,这也就意味着APP或浏览器是属于开发者本人的——显而易见,这不是在做黑产,而是在做开发或测试。
目前比较广泛的应用是做仿真爬虫,即利用手机模拟器、无头浏览器来爬取APP或网站的数据,mitmproxy作为代理可以拦截、存储爬虫获取到的数据,或修改数据调整爬虫的行为。
(1).安装Python2、Python3环境
(2).App爬虫神器mitmproxy
Mac/Windows环境安装mitmproxy
python3
pip3 install mitmproxy
或者
python2
pip install mitmproxy
(3).按键精灵
(4).强制抓包工具postern
https://github.com/postern-overwal/postern-stuff
启动mitmproxy
要启动mitmproxy用mitmproxy、mitmdump、mitmweb这三个命令中的任意一个即可,这三个命令功能一致,且都可以加载自定义脚本,唯一的区别是交互界面的不同。
mitmproxy命令启动后,会提供一个命令行界面,用户可以实时看到发生的请求,并通过命令过滤请求,查看请求数据
使用mitmproxy + python做拦截代理
https://blog.wolfogre.com/posts/usage-of-mitmproxy/
https://mitmproxy.org/
设置代理地址和端口
然后在浏览器中访问地址前,先选择代理方式,再进行访问
安装证书
正常情况下,mitmproxy启动后,只能抓取到HTTP请求的信息,要抓取HTTPS请求信息需要安装证书。证书安装有两种方式
如果没有打开mitmproxy进行抓包的话,在这一步会得到如下错误
如果打开mitmproxy进行抓包的话
使用的mitmproxy启动
使用的mitmweb启动
使用的mitmdump启动