作为软件测试工程师,抓包总是不可避免:遇到问题要做分析需要抓包;发现bug需要定位要抓包;检查数据传输的安全性需要抓包;接口测试遇到需求不全的也需要抓包... 就因为抓包在测试工作中无处不在,所以市面上才会出现一大批的抓包工具供大家选择。
之前我也发过一些文章介绍一些常用抓包工具,比如wireshark,Charles等,然后有很多小伙伴私信或者留言问得最多的一个问题就是“这个工具和xxx工具有什么区别呢?” 或者 "这个工具和xxx工具谁更好用呢?"
所以,为了解决大家的这个疑惑,让大家能够合理地选择更适合的工具,更好的辅助测试工作的执行,我们今天就来分析一下各种爆款的抓包工具的优劣势。
Fiddler
Fiddler工具非常经典且强大,这点大家应该都所体会。它可以提供电脑端、移动端的抓包、包括http协议和https协议都可以捕获到报文并进行分析;可以设置断点调试、截取报文进行请求替换和数据篡改,也可以进行请求构造,还可以设置网络丢包和延迟进行APP弱网测试等。
所以,fiddler的第一个优点,就是功能强大并齐全;
第二个优点就是Fiddler是开源免费的,所有的电脑只要安装就可以直接使用所有的功能!这无疑也是一个非常大的优势,为它也拉拢了大量的用户!
当然,它也有自己的缺点:只能在windows下安装使用。如果要在其他系统上抓包,比如MacOS系统,Linux系统,那么Fiddler就无用武之地了。
Charles
Charles工具别名“花瓶”,它是通过代理来实现的抓包,也就是我们在访问网页时配置代理指向Charles监听的端口,之后所有的请求Charles会帮我们转发并记录。
Charles的使用非常简单,配置好代理后,Charles就开始抓包了。我们可以直接通过它的GUI查看包的内容,其实功能和使用跟Fiddler非常的雷同,同样可以提供电脑及手机端的抓包分析、设置断点、弱网环境模拟等,那么它跟fiddler的区别在哪里呢?
优点:
- Charles基于Java开发的,跨平台性好。所以不仅支持Windows系统,还支持MacOS,以及Linux操作系统;所以基本非windows电脑都会选择Charles工具。
- 要抓取https协议的配置也很简单,只要安装下charles的证书就可以了
缺点:
Charles工具是不免费的。它需要购买license,如果不购买使用的话就会每30分钟断一次,使用体验非常不好!
Wireshark
Wireshark也可以在各个平台都可以安装使用,不过它的功能侧重点和Charles&Fiddler有所不同,它主要用来抓取网络中的所有协议的数据报文,对于分析网络协议以及网络问题方面非常专业!
Wireshark工具的优点:
- 可以选择特定的网卡进行流量的捕获,那么就只会抓取关心的网卡经过的数据,针对性很强;
- 可以抓取所有协议的报文,并且抓取的报文可以完整的以OSI七层网络模型的格式显示,可以清晰的看到客户端和服务器之间每一个交互报文,以及每一个数据包的网络各层级的详细内容显示。所以,这个工具抓包非常适合学习和分析网络协议。
- 提供了非常强大的过滤规则。Wireshark可以提供捕获前过滤,也可以捕获后过滤,并且过滤规则非常详细,可以实现精度和细粒度非常高的包过滤;
- 可以结合TCPdump使用,分析线上服务器(linux系统)下抓取的数据报文,定位线上问题。
Wireshark工具的缺点:
- 如果要灵活的使用它需要具备一定的网络基础,对于初学者有一定的难度;
- 无法分析https数据包,由于wireshark是在链路层获取的数据包信息,所以获取到的https包是加密后的数据,因此无法分析包内容。当然,我们可以对https数据包进行解密, 但是操作具有一定的复杂度,可能要消耗很多时间。
BurpSuite
Burpsuite工具也是基于java语言开发的,所以它也可以跨各平台使用,包括Windows,MacOS 及Linux等系统平台。
Burpsuite可以提供抓包功能,它的工作方式同样也是在浏览器和网站之间做了代理从而实现报文截取的;也能够修改数据内容并转发的功能;甚至还可以选择使用爬虫爬下网站相关的数据...
但是,它绝对不仅仅是一款抓包工具,它集成了很多实用的小工具可以完成更加强大的功能,比如http请求的转发、修改、扫描等。同时这些小工具之间还可以互相协作,在BurpSuite这个框架下进行订制的攻击和扫描方案。
所以这个工具很多功能测试的人员会使用它进行报文抓取和篡改数据,很多安全测试人员会借用它进行半自动的网络安全审计,开发人员也可以使用它的扫描工具进行网站压力测试与攻击测试,功能作用范围更加广泛。
不过它也有自己的缺点,就是不免费!每个用户一年的费用为299$,使用成本相对来说有点高。
F12
F12是众多抓包工具中最简单、最轻量级的,因为它是浏览器内置的开发者工具来提供捕获浏览器的数据报文的功能。它免安装,直接打开浏览器就可以直接使用,所有使用非常好上手,适合入门级别的新手学习。
它主要针对的是HTTP协议和HTTPS协议, 可以确认我们的网络数据包的一个状态, 通过分析请求和响应报文里面的内容, 分析出来请求数据和响应数据是否正确, 定位问题是前端问题还是后端问题。
而且F12作为浏览器的一部分,是数据收发的一端,抓取到的HTTPs报文是可以得到明文数据的;不过因为只能抓当前浏览器的收发报文,层次只能是在应用层Http(s)协议,不能抓取其他的数据报文。
虽然F12抓包调试也能满足我们基本的测试工作需求,但是作用面和强大性和其他的抓包工具还是有一定差距的。
TCPdump
TCPdump我上周发过一篇文章专门介绍过,这是专门作用于Linux命令行的抓包工具,它可以提供非常多的参数来对网络数据包进行过滤和定义。
而它抓取到的报文可以直接打印在linux的命令行界面,也可以进行保存成文件,并用Wireshark工具打开进行更加细致的分析。
想要了解更多,可以查看具体的文章。(附上上篇文章的链接)
总结
综上所述,测试可以用的抓包工具非常多,然而它们各有各的优势,也有对应的不足,所以根据自己的使用场景,选择最适合的抓包工具才是最重要的!
欢迎来到testingpai.com!
注册 关于