抓包工具使用Charles,PostMan

引题

工作中经常遇到需要分析http请求,很多小伙伴还不会用,这里简单给大家说明一下。

1. 王牌Tcpdump

1.1 简介

功能强大的终端抓包工具,官网http://www.tcpdump.org/,支持各种平台。
使用详见: https://www.tcpdump.org/manpages/tcpdump.1.html

1.2 常见用法

1
2
3
4
5
6
7
8
# tcpdump -vv       // 终端直接输入结果

# tcpdump -i eth1 host 192.168.1.1
# tcpdump -i eth1 src host 192.168.1.1
# tcpdump -i eth1 dst host 192.168.1.1

// 手机抓包,注意-vvv 否则包太长会截断
# tcpdump -i wlan0 -p -vvv -s 0 -w /mnt/sdcard/2229.pcap -n host 192.168.0.102

1.3 分析包WireShark

上面简单的命令记一下,大概过滤一下就可以了,抓到包可以保存到文件再使用wireShake分析。

2. Charles

Mac下前端开发必备神器,愿意会付钱购买的好工具。

2.1 浏览器基本抓包

浏览器添加代理插件
SwitchyOmega: https://github.com/FelisCatus/SwitchyOmega

2.2 Map Remote

把一个域请求转发到另一个域请求

2.3 Map Local

把一个请求转到本直文件,请求会直接返回本地文件。应用场景,PC线上页面调试。

2.4 Mirror

把指定条件请求和响应保存到本地文件系统。可以先把某些请求全部缓存到本地,实现离线调试页面。

2.5 手机抓包

2.6 Android手机https抓包

安装Charles提供的证书后就可以实际https抓包。





2.7 其它用法

3. PostMan

3.1 下载PostMan独立安装版,不是Chrome插件版。

3.2 浏览器配置代理

3.3 抓到包如下:

3.4 环境配置变量化:

3.5 编写脚本获取登录sessionId:

3.6 其它请求就可以使用这个sessionId:

4. 自动化抓包流程

前面介绍PostMan也以抓包录制自动脚本,也可以用Charles抓包。Charles好的好处就是支持HTTPS。
下面介绍Charlse抓包后导入PostMan过程:

4.1 Charles选中要导入请求右键导出,选择类型HTTP Archive (.har)格式

4.2 Postman不能直接导入har格式,这里中间使用Restlet Client转换一下.

Chrome插件Restlet Client支持导入PostMan格式和.har格式,所以使用这个做中间转换,另外Restlet Client也是很好用的http请求模拟插件.

4.3 再导出json格式:

4.4 再导入PostMan:

4.5 Postman导入成功:

5. 参考:

  1. 关于Tcpdump抓包总结