使用 Fiddler 测试接口安全 Fiddler 的运行机制、安装 Fiddler、iddler的Response的消息结构、Fiddler捕获请求、Fiddler 的 Response 乱码解决、使用 Fiddler 实现接口测试、伪造数据

1、什么是 Fiddler

Fiddler 是强大且好用的 Web 调试工具之一,它能记录客户端和服务器的 http 和 https 请求,允许你监视,设置断点,甚至修改输入输出数据。

2、 Fiddler 的运行机制 

  • 本机上监听 8888 端口的 HTTP 代理。 
  • 对于 PC 端 Fiddler 启动的时候默认 IE 的代理设为了 127.0.0.1:8888,而其他浏览器是 需要手动设置的,所以如果需要监听 PC 端 Chrome 网络请求,将其代理改为 127.0.0.1:8888 就可以监听数据。

 3、安装 Fiddler 

1)安装 NDP451

Microsoft .NET Framework 4.5.1 ,是微软的一个基础接口程序

2) 安装 fiddler4

3) 安装 fiddlerSyntax

链接:https://pan.baidu.com/s/17s1070v_GKS3iVlfItb6Eg
提取码:6l2b

4、Fiddler 主界面

 5、    Fiddler会话区

  • #:顺序号,按照抓包的顺序从1递增
  • Result:HTTP状态码
  • Protocol:请求使用的协议,如HTTP/HTTPS/FTP等
  • HOST:请求地址的主机名或域名
  • URL:请求资源的位置(路径)
  • Body:请求大小
  • Caching:请求的缓存过期时间或者缓存控制值
  • Content-Type:请求响应的类型
  • Process:发送此请求的进程
  • Comments:备注
  • Custom:自定义值

6、Fiddler 的 HTTP 统计视图

  • 请求总数、请求包大小、响应包大小。
  • 请求起始时间、响应结束时间、握手时间、等待时间、路由时间、TCP/IP、传输时间。
  • HTTP状态码统计。
  • 返回的各种类型数据的大小统计以及饼图展现。

7、Fiddler的监控面板(Inspector)

  • Headers:信息头,若用手机和电脑打开的页面不一样,与此设置有关。
  • TextView:以文本形式显示请求或响应的数据。
  • SyntaxView:同TextView,但有语法着色。
  • WebForms:请求部分以表单形式显示所有的请求参数和参数值;响应部分与TextView内容是一样的。
  • HEX:十六进制形式的数据。
  • Auth:显示认证信息,如Authorization。
  • Cookies:显示所有cookies。
  • Raw:显示Headers和Body数据。
  • JSON:请求或响应数据是json格式时,json形式显示请求或响应内容。
  • XML:请求或响应数据是xml格式,xml形式显示请求或响应内容。

8、 Fiddler的Request消息结构

  • POST:请求方式,HTTP/1.1表示协议与版本
  • Accept:浏览器端可接受的媒体类型
  • Referer:告诉服务器是从哪个页面链接过来的
  • Accept-Language:语言类型
  • Accept-Encoding:压缩方法
  • User-Agent:客户端使用的操作系统和浏览器的名称和版本
  • Connection:网页打开后,客户端和服务器之间用于传输数据的TCP连接是否关闭,keep-alive表示不会关闭,客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接
  • COOKIE:将cookie值发送给服务器

9、 Fiddler的Response的消息结构

 Ø  HTTP/1.1:协议,200:状态码,OK响应消息文本

  • Ø  Cache-Controlprivate的消息不能被共享缓存处理,对于其他用户的请求无效

    Ø  Content-Typecharset:告知客户端服务器本身响应的对象的类型和字符集

    Ø  Expires:浏览器会在指定过期时间内使用本地缓存

    Ø  Last-Modified:客户端请求的资源文件在服务器端最后被修改的时间

    Ø  Date:生成消息的具体时间和日期

    Ø  Content-Length:正文长度

    Ø  Set-Cookie:把cookie发送到客户端

10、  Fiddler捕获请求

1)使用过滤器抓包

 --》保存过滤器

 --》下次进入加载点击Load Filterset进行加载

2)Fiddler 的 Response 乱码解决

ü  进入注册表

²  HKEY_CURRENT_USERSoftwareMicrosoftFiddler2

²  新建字符串值:HeaderEncoding,值设置为GBK

²  重启Fiddler

--》搜索输入regedit

 -->找到HKEY_CURRENT_USERSoftwareMicrosoftFiddler2,右击新建字符串值

 

 --》输入HeaderEncoding,值设置为 GBK

3)HTML页面被压缩

 ü 通过两种方法去解压缩。

²  方法一:点击红框内容“Response body is encouded.Click to decode.

²  方法二:选中工具栏中的"Decode",这样会自动解压缩。

使用 Fiddler 实现接口测试

1)  测试登录接口,不进行登录使用cookie欺骗进入网站

--》  抓包,完成后退出

输入http://192.168.109.208:1080/webtours/,进行登录,登陆成功后,关闭浏览器

--》  选中需要测试的url,找到并复制请求部分raw中的cookie整行

--》  重新启动Fiddler

--》  ComposerParsed

ü  Composer

ü  输入越权访问的url

ü  粘贴Cookie

ü  执行越权url

²  Execute

--》查看webview发现当前用户可以登录

--》将cookie中的用户名换成不存在的用户名,再次进行execute,发现

2)传递非法参数

ü  方法1

²  Fiddler中设置抓包

²  选择urlF2,修改参数

²  回放url

²  查看响应数据或后台数据

--》修改参数

 ---》回放URL

 --》查看响应,数据表被修改

 

ü  方法2

²  Composer

l  选择getpost方法

l  输入urlurl后应携带/

l  post方法应添加  Content-Type: application/x-www-form-urlencoded

l  参数

n  get方法直接在url/后写

u  ?参数名1=1&参数名2=2

n  post方法在RequestBody中写

u  参数名1=1&参数名2=2

l  Execute

 

-->get请求

 --》post

  

 伪造数据 

设置断点修改 Request,使用此方式伪造或篡改数据;攻击 Webtours 付款接口

1)  无需截获数据流(抓包),在浏览器中打开将数据(如价格)发给服务器的页面,停止操作

--》取消抓包

 --》停到某个需要提交数据的页面

2)  在Fiddler中设置抓包和拦截请求

朝下箭头表示响应,朝上箭头表示请求

3)  返回软件操作,给服务器发送数据

4) 拦截完成,篡改将要发送的数据,点击Break on Response,点击Run to Completion

5)在Fiddler中取消抓包和拦截请求

6)  浏览器已经进入下一个页面,继续操作;继续后续操作,到完成

7) 查看后台数据,数据被修改

 

文档来源:尚学堂。百战程序员


原文地址:https://www.cnblogs.com/ychun/p/14328083.html