抓包原理杂谈
抓包原理
目的
了解抓包的工作原理,在合适的场景下选取合适的抓包工具
一、抓包抓包,什么是包?
互联网是一直被喻为信息高速公路,那高速公路上最小的单位就是小汽车,网络中叫
Bit(比特),简写b。
一辆一辆小汽车汇集成车水马龙,在网络中又叫比特流,流传输。
那什么是包呢?疫情期间,我们的家乡对湖北同胞们进行援助,一辆车,两辆车,N辆 车,载着厚重的物资驶向了湖北各地。这些有着共同目标的车辆,简称援鄂车队。网络中也是把相同目标的比特集合称为数据包。也就是说,数据包就是我们发送的应用数据, 这个包,可大可小,甚至可以空(援鄂车队返航应该是空车回去的吧?)
二、为什么要抓包?
工作中经常性遇到BUG,但是这个BUG应该找前端?还是应该找后台?或者说这个BUG产生原因是什么?能否准对数据进行更深层次的测试?等等等等。。。抓包,可以拿到中间传输的数据,如果返回数据没错,还是有BUG,是不是
可以初步判断是前端的BUG?如果返回数据就有错误,找后台同事吧,把具体的数据抛给研发,问他:你这个字段是不是没处理,还能不能干了?(应该会挨打吧, 根据关系来聊了啊);篡改前端字段信息,篡改订单金额信息,如果窜改后生效了? 问后台同事:请吃饭不?一点点,大杯谢谢。
三、抓包原理
至于这个抓包原理,本质上是我们在看传输中的数据。我将抓包原理分为有感和无感。
有感就像疫情期间对我们体温,在公司内可能通过电子体温计进行查看体温
(需要我们配合),对应的抓包工具就是Fiddler,Charles这样通过代理服务器的方式进行查看数据内容(需要配置代理,安装证书,被抓取那一方是需要一定操作的)
无感就像要进商场的时候,通过红外摄像的方式进行查看体温(可以直接走过去,近乎于无感),对应的抓包工具就是Wireshark,tcudump,科莱数据分析这种直接对网卡数据进行抓取(由于是对网卡直接进行操作,上层应用不需要进行任
何操作)
四、工具比较
Fiddler/Charles(代理) 共同点:
- 都是通过代理服务器的方式进行抓包
- 篡改数据
- 网络限速不同点:
1.Fiddler只有Window环境,Charles有Window和MAC
2.Fiddler支持自动响应功能,例如mock数据
3.Fiddler报文显示是一条一条数据显示,Charles的显示是根据域名,然后路径,接口进行分层显示。这一点Charles比较适合没有接口文档的同学做接口测试。
Wirshark/Tcpdump
共同点:
1.过滤命令几乎一致
2.报文格式统一,tcpdump报文可以导出到wireshrak打开
不同点:
1.tcpdump工作在应用层,只能抓取应用层协议,wireshark工作在7层,任何一层数据都可以抓取