抓包工具的使用

  在被测接口并无明确的接口文档给出时,咱们须要借助抓包工具来帮助测试,利用抓包工具咱们几乎能够得到接口文档中能给你的一切。常见的抓包工具备Charles和Fiddler, Fiddler只能用在Windows平台, 而Charles可用于Windows, Mac, IOS和Android多平台。css

  抓包的原理是经过成为电脑或者移动设备的代理截取请求和请求结果达到分析抓包的目的。就是说,我们的请求从客户端发送,直到本地客户端显示出结果是通过了几个步骤的:请求发送给服务端,服务端接收请求并处理,服务端将结果返回给客户端。代理就是在客户端以及服务端之间设一道关卡,能够监控到来往的数据包,而且能够将其篡改。前端

fiddler后端

 

Charles

1、安装

下载地址:https://www.charlesproxy.com/download/api

破解攻略:https://www.zzzmode.com/mytools/charles/浏览器

按照上面的内容,很容易就能安装好咱们要的 Charles,打开以下:服务器

 

Charles 提供了两个不一样的视图方式:Structure & Sequencecookie

Structure 是将请求按照域名进行分类,按照路径逐级分类:工具

 

Sequence 则是将请求按照访问时间前后顺序分类:post

 

2、基本配置

  上面咱们提到,抓包工具实际上是代理进行的,那么咱们怎么设置代理的端口呢?测试

  Proxy ==>  Proxy Settings ==> Proxies ==> Port ,默认是 8888,这里咱们不予更改,若是端口被占用,能够考虑修改此端口号进行抓包,将客户端(浏览器/移动端)的代理端口也设置成 8888 。Charles 才能正确创建代理

  那么还有一个问题,咱们怎么设置只抓取某个 ip 的请求呢?无关请求,咱们不须要,好比某输入法,qq 等,是咱们不须要的请求;并且,通常来说,咱们是抓取跟后台交互的请求,也就是说 js,css,jpg 等这些图片,咱们是不须要抓取的,那么怎么过滤这些无关请求呢?

  好比说,咱们只要博客园的请求,那么咱们就设置:Proxy ==> Recording Settings ==> Include ==> Add ==> Host 内填入想要抓取(博客园)的域名 ==> OK ==> OK

 

3、抓取 Windows 请求

  抓取浏览器请求很简单,跟上面说明好的配置 ok 就成,假设咱们也链接了移动端设备,Proxy 内选择 Windows Proxy 便可

  那么怎么抓取 https 请求呢?

 

4、抓取移动端请求(Android 为例)

  为何用 Android 举例呢?由于本人用的就是小米6(Are you OK?),这里待补充,具体作法就是手机上要安装 Charles 证书,才能抓取到

5、篡改请求,拦截响应

   仅仅知道怎么抓包远远不够,还须要掌握如何利用抓包工具对要发往服务器的请求与进行拦截并篡改,以及对服务端返回的数据进行拦截,篡改返回的数据。那么你可能会问了,为何要改这些数据呢?

在咱们的接口测试中,利用抓包工具拦截请求修改的话,能够初步验证该接口的某些问题。好比说:咱们在前端页面上下拉框选择一个选项,而后查询,假设不能修改请求,就只能发送选择的请求;那么假设咱们拦截了,修改为下拉框没有的内容,再发往服务器,就能验证先后端是否有校验。若是服务器接受了下拉框不存在的请求而且处理,说明后端是没有校验的。还有不少状况,例如修改 cookie ,前端限制了输入字符串的长度等,均可以经过接口去测试后端是否校验。

  那么为何咱们要拦截返回的数据,修改在页面展现的状况呢?仍是同样的,假设咱们一个表单保存后,重定向到显示的列表,数字有位数限制,好比两位小数,那么咱们能够修改返回的数据。

 

具体如何拦截修改呢?

  假设,咱们抓取 http://doc.nnzhp.cn/  信息,篡改请求的内容,或者修改搜索的内容:

  一、首先咱们抓一下 http://api.nnzhp.cn/api/user/stu_info?stu_name=%E5%B0%8F%E9%BB%91 的响应结果,而且对相应的 url和路径打断点,这里要注意,这里的断点有个相似于做用域的范围,假设咱们对某个路径进行断点,那么表明该路径下的全部请求都要会被拦截。

 

二、接着,咱们清空 Charles 内的请求,而后去浏览器再请求一下该连接,将拦截的请求修改,看看结果:

发现浏览器页面一直在跳转,可是没结果,这说明请求成功拦截了,咱们看看 Charles ,成功拦截下了请求,在 Edit Request 内可对请求进行修改,再发送到服务期内,咱们将"小黑"改为"小白"试试:

修改成"小白",发送到服务器:

返回的结果以下:

这个返回的结果,咱们也是能够修改的,也就是修改相应内容,咱们把第一条"小白"改为"小王八",其余的不变,看看浏览器结果:

 

 

能够看到,咱们发送的请求为 小黑,接收到的结果为:小王八+小白,这里举的例子是对 get 请求进行修改,那么 post 请求实际上是同样的。

注意,断点打完了记得取消掉,不然请求将会被拦截哦

相关文章
相关标签/搜索