抓包工具
1.1 常用抓包工具
常用的抓包工具有:Wireshark、Fiddler、Charles。
Wireshark、Fiddler、Charles的优缺点:
①Wireshark是一种在网络层上工作的抓包工具,不仅自带大量的协议分析器,而且可以通过编写Wireshark插件来识别自定义的协议。虽然Wireshark功能强大,但是却并不能解决所有的抓包问题,其原因在于:Wireshark工作在网络层;如果计算机配置了IPSec传输层加密,则在网络层的流量都已经被加密,什么也看不到。当今大量网络接口使用HTTPS加密,Wireshark不能抓取到HTTPS流量的明文内容。
②Fiddler和Charles工作在应用层上,作为其他程序的HTTP代理服务器。它可以直接抓取并分析HTTP流量,也可以作为“中间人”抓取并分析HTTPS流量。
1.2 参考资料
https://www.cnblogs.com/kristin/p/8445141.html
https://blog.csdn.net/sb___itfk/article/details/45250771
2.1 wireshark使用
2.1.1 抓取数据包
- 选择抓包网口,选择抓包网口有两种方式
l 第一种,启动wireshark后,直接双击以太网,就会开始抓包。
l 第二种,启动wireshark后,点击捕获—>>选项。在弹出框中选择网卡以及配置过滤条件。
- 停止抓包,点击停止后,可以将捕获的数据包保存。
2.1.2 常用过滤、分析
捕获的数据包比较多,可以通过一些语法进行筛选。
- 根据ip地址进行筛选,语法如下ip.addr==192.168.0.121。
- 根据http.request过滤所有http请求
- 根据关键字查询
2.1.3 查看捕获的数据
2.2 Fiddler使用
2.2.1 抓取数据包
2.2.2 搜索会话
按住ctrl+F,输入关键字,点击find session,进行搜索
2.2.3 查看会话
选择一个会话,根据结果的请求/响应的不同数据类型,显示会话。
2.2.4 设置代理
- Tools-> Fiddler Options
选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来
记住这个端口号是:8888,通过ipconfig查看本机的ip,如本机ip为192.168.2.11
- 在手机上进行代理设置
- 下载Fiddler的安全证书
使用android手机的浏览器打开:http://192.168.2.11:8888, 点"FiddlerRoot certificate",然后安装证书。
安装完成后,就可以在fiddler上看到手机的HTTP请求
2.2.5 抓取HTTPS数据包
l Fiddler抓取HTTPS数据包过程原理:
l fiddler接到客户端的https请求,fiddler将请求转发给服务器
l 服务器生成公钥证书,返回给fiddler;fiddler拦截下真的公钥证书,并生成伪造的公钥证书给客户端;
l 客户端使用伪造的公钥证书加密共享密钥发送给fiddler,fiddler使用伪造的私钥解密获取共享密钥
l fiddler将解密后的共享密钥,使用真正的公钥加密发送给服务器端,服务器使用共享密钥与fiddler通信
l fiddler使用共享密钥与客户端通信
- 设置抓取HTTPS,PC机安装根证书:
Tools->options->HTTPS->capture https connects->decrypt https traffic->ignore server certificate errors(unsafe)->actions->trust root certificate->确定->OK
- 安装根证书后,可以点击Actions->open windows certificate manager查看安装到系统的根证书
2.3 Charles使用
2.3.1 抓取数据包
启动Charles后,就开始自动抓包。在filter中输入内容,可以进行过滤。
如果抓不到,查看proxy下面选择的系统是否正确。Windows系统选择windows proxy
2.3.2 查看会话
2.3.3 设置断点
找到需要拦截的接口,右键点击breakpoint
Proxy—>>breakpoint—>> settings,可以看到已设置的断点,也可以在此进行断点设置,如新增断点,只拦截断点的请求/响应,
也可以设置模糊的path 如path写成*login*,即所有包含login的接口
设置断点后,就可以开始编辑请求/响应。
2.3.4 弱网测试
点击Proxy-- >> Throttle Settings-- >> Enable Throttling,可以设置网络,进行弱网测试。
2.3.5 设置代理
点击Tool-- >> Map Remote -- >> Enable Map Remote,设置代理,可以将一个服务器的请求全部转发到另一个服务器上。
效果如下图:
应用场景:如临时变更测试服务器,客户端不需要重新打包。
2.3.6 设置从本地文件代理
点击Tool-- >> Map Local -- >> Enable Map Local,设置所有请求,或者部分请求的响应直接从本地文件代理,返回本地文件中的内容。效果如下图。
---------全文完----------