为什么要学习抓包?
答:抓包可以让你对传输数据更好的分析以便于调试和测试程序,对于理解http协议也是很有帮助的,可以对网页(这里面的网页是范指,毕竟现在基本都是webapp了)的信息进行提取处理后再进行输出。
那么抓包都有什么工具呢?
答:抓包的工具很多,比如Fiddler、Wireshark、等强大的程序员团队为了方便的工具开发了很多,那我们今天就来介绍一个mitmproxy。
那我们为什么要介绍mitmproxy?
答:fiddler的抓包对于windows系统很友好但是在linux和mac表现一般而且对信息处理和转发起来比较复杂,而mitmproxy适合于全平台的手机抓包工具,可以对http请求进行简单的处理和转发,并且开源是一个命令行交互的工具,也有web端。
github地址:https://github.com/mitmproxy/mitmproxy
是一个python开源的抓包交互式命令行工具,他的官网介绍是这样的
mitmproxy
是一个具有控制台界面的交互式,支持SSL的拦截代理。
mitmdump
是mitmproxy的命令行版本。认为tcpdump的HTTP。
mitmweb
是一个基于网络的mitmproxy界面。
pathoc
并pathod
旨在让你手艺几乎任何想得到的HTTP请求,包括那些创造性地违反标准不正当HTTP客户端和服务器应用程序。
这里他的三个小工具,第一个mac,和linux版本支持很好但是暂时的win不支持,所以如果你的电脑是win系统那么只可以使用,mitmdump、mitmweb 这样的两个程序。
在mac电脑上下载
brew install mitmproxy
在linux系统和win系统下的安装可以在官网提供的发布页下载
https://github.com/mitmproxy/mitmproxy/releases/tag/v2.0.2
如果你的电脑里免安装了pip3工具也可使用
pip3 install mitmproxy或者mitmdump和mitmweb
那么如果你下载的是压缩包那么解压以后在环境变量下配置路径就ok了。
使用
手机抓包大家都知道要安装证书就是相当于一个护照有了它你才可以出国旅游,在你安装好mitmdump (我们这里用win系统作为例子因为win只可以用mitmdump和mitmweb)
首先我们要把手机和电脑链接在同一个网络下比如我的电脑和Wifi都在连接在shangwang这个wifi下面
填写上你的正确的ip地址和抓包开启的端口号默认8080端口也可使用其他端口
我这里是192.168.1.105所以服务器输入192.168.1.105端口号使用默认端口号8080就可以了如果大家想使用其他端口号也可以使用
mitmdump -p ****
进行端口指定,防止8080端口被其他的软件所占用。
手机配置好以后我们就开始使用了首先是访问mitm.it网站安装证书
选择你的手机机型,我这里是苹果机型所以选择第一个下载安装好证书以后就可访问网站了,如果你没有安装好证书就访问其他网页其他网页是阻止访问的,注意:苹果机型是需要设置证书信任的11.x版本都是在设置->通用->关于本机->证书信任里面设置信任证书。
操作抓包
我们设置完信任整数以后就可以流畅的访问网页了,那我们网页的信息就会在我们的命令行交互窗口显示
而我们可以用python编写脚本来让mitmproxy进行运行处理并返回值。
http://docs.mitmproxy.org/en/latest/scripting/overview.html
可以参考官网的脚本栏
对于获取的http请求进行自己想要的操作
操作脚本
mitmdump -s add_header.py
这样的话我们就用mitmdump运行了一个我们编写的python脚本可以干很多事情
mitmdmup主要是可以运行脚本来对数据进行处理这点很好对于其他的一些简单的抓包如果你是win用户还是使用Fiddler,而mitmproxy在这上面感觉并不占优势,但是在linux系统和mac使用它还是可以的。
我们用mitmdmup用python写脚本对于手机上面获取的数据请求进行处理操作,那么可以干什么呢?那就发挥你的想象写一个简单python脚本来验证下吧。