前言:
上篇文章简单介绍了手机端的抓包工具fiddler的使用,实现了抓取抖音某用户“喜欢”的视频列表的操作。
为了在代码层面实现手机端的抓包,介绍另一款非常便捷的代理工具Mitmproxy的安装与使用。本文记于2020年10月。
基础知识:
1) 什么是网络代理
通过 代理服务 访问目标网页。类似与淘宝快递的场景,买家和卖家不会有直接的接触,在一场购物过程中,卖家不需要关心你是谁、你住在哪,只需要贴条发快递即可。实际购买的五品是通过快递小哥触达买家的。在这个过程中,快递小哥充当的就是 代理服务 的角色。
代理服务器(Proxy Server)作为网络信息的中转站,其功能是代理网络用户去取得网络信息。
2) 什么是Mitmproxy
Mitmproxy就是一个常见的网络代理服务,与fiddler、charles类似。
“顾名思义,mitmproxy 就是用于 MITM 的 proxy,MITM(Man-in-the-MiddleAttack) 即”中间人攻击”,用于中间人攻击的代理首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次,会适时的查、记录其截获的数据,或篡改数据,引发服务端或客户端特定的行为。
不同于 fiddler 或 wireshark 等抓包工具,mitmproxy 不仅可以截获请求帮助开发者查看、分析,更可以通过自定义脚本进行二次开发。”这也是Mitmproxy的突出应用场景,除了可以实现类似fiddler的过滤浏览器对某个特定 url 的请求、查看 分析数据,还可以实现高度的定制化需求,这样的需求可以通过载入自定义代码脚本轻松实现,支持python/java等语言,简单易用。
3)Mitmproxy的基本功能有哪些
Mitmproxy是一个开源项目,github托管地址为 https://github.com/mitmproxy/mitmproxy。
其项目中包含4个最重要的组件,分别为:
- mitmproxy 是具有SSL / TLS功能的交互式拦截侦听代理,具有用于HTTP / 1,HTTP / 2和WebSockets的控制台界面。
- mitmdump是mitmproxy的命令行版本。将tcpdump用于HTTP。
- mitmweb 是用于mitmproxy的基于Web的界面。
- pathoc并且pathod是错误的HTTP客户端和服务器应用程序,旨在让您制作几乎所有可能的HTTP请求,包括创造性地违反标准的请求。