Ⅰ 功能测试必备:抓包工具的作用及常用抓包工具有哪些
大家好啊,我是大田
2022.03.30,日更第 53 / 365 天。
在测试工作中,需要抓包工具帮助定位前后端问题,当看到前端页面出现bug后,需要进一步判断是前端问题还是后端问题。同时可以利用抓包工具进行小规模的安全测试,或者使用抓包工具构造一些难以测试的测试场景,例如:弱网测试等。
本篇说下抓包工具作用以及常用抓包工具有哪些。
一、抓包工具作用
在客户端与服务器进行通信时,主要采取报文形式传输。客户端和服务器分别产生各自的报文,对于功能测试人员来说,需要验证客户端请求报文和服务器响应报文是否正确,那如何获取二者的报文呢?这里就引入了抓包工具,也只能使用抓包工具来获取。
这里来了解下抓包工具的原理:(工具先以Fiddler为例)
原本浏览器和服务器互相传输信息,现在Fiddler拦截二者的请求,让浏览器所有的请求都发送给Fiddler,由Fiddler转发给服务器,服务器所有返回的数据也都返给Fiddler,由Fiddler返回给浏览器。这样客户端的浏览器和服务器的请求都被Fiddler所拦截下来了,从而Fiddler也知道他们二者各自做了什么内容。
图片
其实这种方式也是早期黑客攻击的手段之一,通过拦截请求,篡改数据,让服务器和客户端认为请求是真实的。
二、常用抓包工具有哪些?
1、浏览器自带开发者工具,例如,谷歌浏览器的开发者工具。
2、Fiddler:Windows系统中非常流行的抓包工具。
3、Charles:也是流行的抓包工具,尤其是在Mac电脑上用的是最多的。
end ~~
Ⅱ windows 抓包工具有哪些
Wireshark抓包软件:Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。
Connectify Hotspot软件:能够将电脑的无线网卡变身为无线路由器共享无线网络的软件
带无线网卡的Windows电脑
软件名称:Connectify Pro 破解版 v6.0.0.28615 [附序列号]软件大小:6.45MB更新时间:
配置Connectify Hotspot
软件名称:Wireshark(网络包分析工具) 捕获网络数据包 V1.12.1
步骤:
1、两款软件安装完成后,运行Connectify Hotspot,打开右下角的Connectify Hotspot窗口,设置Password,等下在iPhone上我们要用此密码验证。第二个Internet to Share要选择Windows电脑的无线网卡,我这里直接显示的是Wi-Fi。然后Share Over同样选择Wi-Fi。下面一项是加密方式,这跟设置无线路由器的加密方式一样。这里使用默认的WPA2。然后点击Start Hotspot按钮就可以将这台Windows电脑的无线网卡变身成一个无线路由器了。
iPhone连接Connectify Hotspot
1、Connectify Hotspot成功运行后,打开iPhone手机,进入设置 - 无线局域网。这里就会看到一个新的无线网络,如图名为Connectify-me。点击它,然后输入我们在Connectify Hotspot上设置的密码就可以连接了。
2、连接成功后可以在iPhone上打开浏览器试着打开一个网页,看能否打开。如果能够打开,就说明成功了。
用Wireshark抓包获取iPhone网络通讯数据
1、运行Wireshark,在窗口上点击Interface List,看哪张网卡正在发送和接受数据包的,从Packets那一项可以看出。点击网卡前面的选择框选中,然后点Start按钮开始抓包。如下图:
2、现在你就可以在iPhone上运行各种网络应用了,只要他们有网络通讯传输任何数据,Wireshark都可以截获到这些数据。比如下图就是我用iPhone的浏览器Safari访问了一下Connectify的网站,Wireshark抓到的HTTP包。我使用了http过滤器,只显示了所有的HTTP包。这样我们就成功地使用Wireshark抓取到了iPhone的网络数据了。
以上就是在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据方法,希望对大家有所帮助!
Ⅲ 抓包工具有哪些
你在编程的时候才需要做抓包操作,你没有必要专门下载一个工具,你只要使用chrome浏览器会自动的带一款工具,而且非常有用。
Ⅳ 作为一名软件开发人员,你常用的网络抓包软件都有哪些
作为一名在一线奋斗的开发工程师,下面对几款自己常用的网络抓包软件进行介绍。
1.Wireshark
完善的图形化界面,跨平台支持,可谓一款超级优秀的网络封包分析软件,只要你做的东西设计到网络数据传输,基本上该款软件的使用是必备技能点来,它可以帮助我们很好的来分析网络传输过程都发生来些什么,可以用它以图形化形式来分析后文提到的tcpmp捕获的数据包文件,而且支持自定义扩展脚本,记得当年搞LTE开发,一直是用的wireshark来分析TCP/IP协议栈,GPTU、PDCP、RLC,LTE用户面协议。是自己抓取的CSDN登录的HTTP数据包,当然后面的需求还需自己去分析。
2.tcpmp
linux环境常用的网络抓包工具,可以截取网络传输数据并对其进行输出。和WireShark相比,它不提供图形化界面,纯命令行形式运行,功能更方便自主化的同时带来了上手的难度。有一点需要注意的是,由于其需要将网络设置为混告陵坦杂模式,普通用户并没有执行权限,所以使用时我们需要使用需要具有root权限。正因为如此,它不仅是开发人员和运维的必备工具,同时也袜桐可能成为黑客入侵的道具。
3.fiddler
这家伙相当于介于客户端和服务器之间的http代理,是一种比较常见的http抓包工具,可以让我们清楚的看到每一次http请求的具体内容,header,body体等,更难得的是你可以用它来修改服务器返回的http响应的数据包内容。
4.PacketCapture
安卓抓包神器,无需root,和tcpmp相比,它可以指定应用程序。如下面三张图所示,是我用PacketCapture抓取京东商场的数据包,用起来还是很方便的,唯一的缺点就是抓取的数据包不能到处pcap格式用wireshark分析,看起来比较费劲。
5.浏览器自带F12功能
这一点,应该搞前端的工程师使用是非常多的了把。我们可以很清楚的看到每次发起请求的内容已经服务端响应的数据包。很方便的确定每个资源的请求响应时间,对于我们有时候定位超时问题很有帮助。
最后,需要说的是,网络抓包工具只是一方面,更多的是需要我们自身对TCP/IP协议栈的理解汪基,有了对网络知识更深的理解,我们才能够更好的驾驭这些软件。
Ⅳ 有哪些抓包工具
第五名:TCPDump(网络类)
根据白帽子黑客抓包工具的使用率,将TCPmp排在第五的位置。
第一名:BurpSuite (web 报文)
BurpSuite是现在Web安全渗透的必备工具。
它是一个集成平台,平台中汇集了可以用来攻击web应用的工具,这些工具有很多接口,共享一个扩展性比较强的框架。
Ⅵ 常用的抓包工具
使用案例: https://string.quest/read/3754545
https://blog.csdn.net/fageweiketang/article/details/103516566
安装scapy python setup.py install
运行scapy: ./run_scapy
在目标机器: 1.2.3.4上执行抓包命令: tcpmp -i eth0 -vnn 'src host 10.2.3.4 and dst port 4789' -c 10 -w test.pcap
tcp报文的构造和抓取
tcpmp -i eth0 -vnn 'src host 1.2.3.4' -c 4 -nnve -w test_1.pcap
参考:
https://zhuanlan.hu.com/p/51002301
https://rattibha.com/thread/1446683409644851201
scapy怎么发vxlan报文: https://www.jianshu.com/p/a8bfe5ab2347
Ⅶ 四大网络抓包神器,总有一款适合你~
无论是开发还是测试,在工作中经常会遇到需要抓包的时候。本篇文章 主要介绍如何在各个平台下,高效的抓包。
目前的抓包软件总体可以分为两类:
一种是设置代理抓取http包,比如Charles、mitmproxy这些软件。
另一种是直接抓取经过网卡的所有协议包,其中最出名就是大名鼎鼎的wireshark以及linux自带的抓包软件tcpmp。
下面重点介绍一下这四个抓包工具的特点以及使用。
wireshark想必大多数程序员都不会陌生。wireshark在各个平台都可以安装使用,它 可以抓取经过指定网卡的所有协议。 wireshark虽然很强大,但是对初学者其实不是很友好。
这也正是由于它太强大,它可以抓取所有包,所以初学者在使用时面对茫茫数据流不知所措。初学者需要认真的去学习怎么过滤得到自己感兴趣的包,但是如果不熟悉wireshark的过滤语法,要过滤数据包将举步维艰。
过滤语法简单介绍
wireshark的过滤语法总结起来其实也很简单,就是 以协议开头,后面可以跟着协议的属性,然后加上一些判断符号, 比如contains、==、>、<等等。比如只想展示http的协议内容,则直接在过滤器输入框中输入http即可。
如下图:
比如我 只想看http协议的请求头中uri包含’/api’的协议,就可以这么写:
如果想通过目标ip或者来源ip来过滤包,就不可以以http协议为前缀了,因为这些是ip协议的相关属性。 通过目标ip来过滤可以这么写:
上面表示目标机器的ip是61.135.217.100并且协议是http的包。
wireshark支持很多种协议,我们可以通过右上角的expression来打开搜索支持的协议,还可以找出协议支持的属性,然后填入期待的值,软件会自动为我们构建过滤语句。
优点:
功能强大,可以抓取所有协议的包
抓到的包容易分析
缺点:
由于线上服务器没有GUI,只有命令行,因此无法在线上服务器使用
无法分析https数据包,由于wireshark是在链路层获取的数据包信息,所以获取到的https包是加密后的数据,因此无法分析包内容。当然,我们可以对https数据包进行解密, 但是操作具有一定的复杂度,可能要消耗很多时间。
tcpmp是linux上自带的一个抓包软件(mac也有),功能强大,也可以抓取经过指定网卡的所有协议包。
由于是命令行工具,tcpmp抓取到的包不易于分析,一个常见的做法是将tcpmp抓到的包输出到某个文件,然后将文件拷贝下来用wireshark分析。
一些简单的过滤参数:
抓包内容输出到文件:
之后我们可以把test.cap直接用wireshark打开,就可以很直观的分析包了。
用tcpmp输出cap文件包:
tcpmp-r test.cap
Charles是一款http抓包工具,它是通过代理来实现的抓包。也就是我们在访问网页时需要配置代理,将代理指向Charles监听的端口,之后我们的http请求都会发向Charles的端口,之后Charles会帮我们转发并记录协议内容。
Charles的使用非常简单,配置好代理后,Charles就开始抓包了。
我们可以直接通过Charles的GUi查看包的内容:
上图中的unknown表示https加密后的数据,所以看到不协议的具体内容。我们可以通过安装Charles的证书,让Charles也可以查看https协议的具体内容。
优点 :
使用简单,只需配置一下代理地址就可以
要抓取https协议的配置也很简单,只要安装下charles的证书就可以了
mitmproxy是python写的一款http抓包工具,虽然只支持http抓包,但是它的特性非常强大,它不仅可以抓包,还可以对请求进行拦截、重现等操作。和Charles一样,它的原理也是基于代理,使用的时候需要设置代理指向它。
mitmproxy是命令行工具,但是也自带了mitmweb工具,可以让用户在网页上操作。另外,mitmproxy还支持用户自行编写插件,可以编写脚本对请求进行处理,然后把修改后的请求发出去。
1、安装
首先需要在机器安装python3以及pip3.之后通过pip3安装
pip3 install mitmproxy
如果安装mitmproxy过程中报错MoleNotFoundError: No mole named '_ssl',就需要安装一下OpenSSL,然后再重新编译安装一下python3。
安装好openSSL后再执行pip3 install mitmproxy
2、使用
安装后,直接在命令行输入mitmproxy就会进入它的交互界面:
这时候mitmproxy已经开始监听8080端口(默认),接着,我们可以去浏览器设置代理。浏览器设置代理的方式有很多,这里不多做介绍。
设置完代理后,访问浏览器的请求都会被发到mitmproxy上,mitmproxy根据规则对请求进行拦截(不配置拦截规则的话则都不拦截),所有经过的请求都会被输出:
在交互界面上可以通过快捷键操作请求。输入问号’?’,可以查看快捷键的文档。
3、下面介绍一些常用的快捷键和功能
① 请求过滤
在请求列表交互界面,按下f键后,可以输入一些过滤规则:
具体的过滤语法可以按下’?‘键后,再按下方向键右’—>’或者l键。
② 请求拦截
按下i键后,可以对指定的请求进行拦截。按mitmproxy收到指定条件的请求时,不会立马把它转发出去,而是等待我们执行resume操作后,才会把请求转发出去——在这期间我们甚至可以对请求进行手动修改。
红色字体表示该请求被拦截,之后我们可以按入a键来恢复该请求,可以输入A键恢复所有被拦截的请求。
③ 查看/编辑请求
把指示光标移动到某个请求上,按回车可以查看请求的内容。或者鼠标直接点击请求也可以。
之后通过左右方向键可以查看request、response、detail等信息。
如果要编辑请求,可以在这个界面输入e,然后会让我们选择编辑哪块内容:
之后就会进入vim编辑界面编辑相应的内容了(保存后会生效)。
④ 重发请求
mitmproxy的光标指向某个请求时,按下r键可以重发这个请求(重发前可以对该请求进行编辑)。
按下’:’键后,可以输入命令,这样我们就可以通过过滤规则批量的重发请求
replay.client是mitmproxy内置的一个命令,我们也可以自行编写命令。命令的编写可以参考官网文档,这里不做介绍。
⑤ 插件开发
我们可以编写插件,然后再启动的时候指定插件,mitmproxy处理请求的时候会执行一个插件的链,这样我们就可以对请求进行编辑然后再发送出去了。
借用官网的插件demo:
这个方法对每一个请求进行处理,然后打印序号。通过mitmproxy -s test.py来让插件生效。通过插件可以绑定各种连接事件。感兴趣的朋友可以自行去mitmproxy官网看文档,这里不多做介绍。
⑥ 保存抓到的请求数据
通过w快捷键我们可以把这次抓到的请求包保存到文件上。
通过mitmproxy -r file可以读取以前抓取的请求信息进行分析。
优点:
命令行操作,可以在无GUI界面的服务器上使用
对于这几个抓包神器,我总结了下使用场景:
只抓http协议的话:
推荐使用mitmproxy。mitmproxy丰富的功能不仅可以满足我们的抓包需求,还可以提升我们的工作效率。比如测试可以抓包后一键重发请求来重现bug,开发调试的时候可以修改请求内容等等。
如果是在线上的没有GUI的服务器:
推荐使用tcpmp,虽然mitmproxy也可以支持命令行抓包,但是生产环境的服务器最好不要乱安装第三方插件。另外,大多数服务器都有装tcpmp。我们可以通过把请求的内容输出到文件,然后拷贝会自己的电脑用wireshark分析。
想要抓取http以外的协议的话:
直接上wireshark。功能强大。对于Charles,感觉用了mitmproxy之后,就基本用不上Charles了。Charles好像也可以编辑后再发送,但是感觉不是很好用,可能我用的不是很熟吧。
Ⅷ 移动开发过程常用的抓包工具都有哪些
21世纪不懂网络,那么你将寸步难行。而学习网络知识最直观、最有效的方式就是将枯燥的协议基础知识和直观的网络抓包工具融合到一起,下面介绍下移动端常用的抓包工具,欢迎大家留言讨论。
Fiddler
不仅可以抓取Web端网络数据包,更能抓取移动端数据包。是一款采用C#编写的专业HTTP抓包工具,使用灵活、功能强大。
它能记录并检查所有客户端与服务端的HTTP/HTTPS请求,能够设置断点,篡改及伪造Request/Response的数据,修改Hosts,限制网速,HTTP请求性能统计,接口测试等。
唯一的缺点就是只支持Windows,安装使用过程需要net的支持。
Charles
iOS平台下一款非常优秀的抓包神器,无论你是搞移动开发还是逆向,都应该掌握下它的基本用法。唯一雹肢山的缺点就是收费,当然,这难不倒广大人民群众的聪明智慧。
其抓包原理是源中通过将自己设置成系统的网络代理服务器,使得所饥谈有的网络访问请求都流经它。iPhone设备具体设置方法
PacketCapture
Android抓包利器,手机无需Root即可直接使用,其最大的优势就在于可以指定APP进行抓包,是很多逆向同学的钟爱之物。是我抓取的京东APP的数据包截图。
tcpmp
Linux环境下的抓包利器,无图形化界面,这无疑对很多新手小白造成了困扰,不过正是由于这一点,才给了你更大的自由。当然在Android手机下同样适用。
友情提醒:
tcpmp使用需要root权限,在公网适用后记得一定要删除它。网络安全无小事!切莫挑衅一些hacker的能力!