【工具】抓包工具-Fidder抓取web app请求

抓包工具-Fidder抓取web app请求

1.什么是Fiddler,它可以做什么

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一。

Fiddler能够记录客户端和服务器之间的所有http请求,可以针对特定的http请求,分析请求数据,设置断点,调试web应用,修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器

既然是代理,也就是说客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之服务器的所有响应,也都会先经过Fiddler,然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为:127.0.0.1:8888的浏览器和应用程序

使用了FIddler后,web客户端和服务器的请求如右图所示:

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325122849344-749525958.jpg

本地回路地址是指本地回环地址,本地回环地址不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。

作用:

一般都会用来检查本地网络协议、基本数据接口等是否正常的。

主要作用有两个:一是测试本机的网络配置,能PING通127.0.0.1说明本机的网卡和IP协议安装都没有问题;另一个作用是某些SERVER/CLIENT的应用程序在运行时需调用服务器上的资源,一般要指定SERVER的IP地址,但当该程序要在同一台机器上运行而没有别的SERVER时就可以把SERVER的资源装在本机,SERVER的IP地址设为127.0.0.1同样也可以运行。

本地回环地址指的是以127开头的地址(127.0.0.1 - 127.255.255.254),通常用127.0.0.1来表示。

2.利用Fiddler录制web请求

1.打开浏览器,设置服务代理器为:127.0.0.1端口为:8888

2.打开Fiddler,然后打开浏览器,进行目标网站访问

3.录制请求如下:

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325122925792-1012644573.jpg

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325122940162-863757091.jpg

 

3.Fiddler各个组件分析

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325123035886-1506190465.jpg

web session面板:主要是Fiddler抓取到的每条http请求(每一条称为一个session)

主要包含了请求的URL,协议,状态码,body等信息,详细的字段含义如下

 

1.#  http request 的顺序,从1开始,按照页面加载请求的顺序递增

2.  Result   http响应的状态,可以参考这里

3.  protocol:请求使用的协议(如http,https,ftp)

4.  host 请求地址的域名

5.URL:请求的服务器路径和文件名,也包括GET参数

6. BODY: 请求的大小,以byte为单位

7.caching:请求的缓存过期时间或缓存控制 header等值

8. content-type: 请求响应的类型

9.process 发出此请求的windows进程和进程ID

10:comments:用户通过脚本或者右键菜单给此session增加的备注

11.custom: 用户可以通过脚本设置的自定义值

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码

常见的http  code:200  ok 302  move 400 bad request 401 Unauthorized 403Forbidden  404 Not Found 405Method Not Allowed 500 Internal Server Error 服务器内部错误

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325123224939-872924805.jpg

如果只想抓取一个网站的包的话

然把fiddler的默认端口8888改掉,改程7777,右边第一个在启动时作为系统代理不打钩

后把火狐的端口也改成7777。

重启fiddler

crtl+x 清除右边session

statistic:

关于http请求的性能和其他数据分析,我们可以从中看出一些基本性能数据,如DNS解析的时间,建立TCP/IP连接的时间消耗等信息

 

inspectors

分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。

对于每一部分,提供了多种不同格式查看每个请求的响应的内容

JPG格式使用imageview就可以看到图片

HTML/JS/CSS使用textview 可以看到响应的内容

raw标签可以查看原始的符合http标准的请求和响应头

cookies标签可以看到请求的cookie和响应的set-cookie头信息

 

AutoResponder   调试bug

Fiddler比较重要且强大的功能之一,可用于拦截某一请求,并重定向到本地资源,或者使用Fiddler的内置响应,可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的的文件或者得到的Fiddler的内置响应。当勾选allow autoresponser并设置相应的规则后,进行使用。因此,如果要调试服务器的某个脚本文件,可以将该脚本拦截到本地,在本地修改完脚本以后,在修改服务器的内容,这样可以保证尽量在真实的环境下去调试,从而最大限度的减少bug发生的可能性。

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325123409191-18845998.jpg

Composer  设计者  也可以做接口测试,可以修改数据,从fiddler端发起请求

Parsed输入请求的url之后,execute即可,也可以修改相应的头信息(如添加常用的accept,host,referrer,cookie,cache-control等头部)后execute

把请求信息拖到右边,可以看到具体的请求信息。点击excute可以从fiddler端发起请求代替浏览器端

可以绕过前端,去发现前端一些发现不了的bug 提高网站的健壮性,可以判断是前端的文图

比如说先登录获取session信息 然后拖住登录login请求拖到composer里,查看webform会以表单形式把用户名和密码列出来,修改密码或用户名点击execute 重新登录查看statis里的提示 可以绕过前端,比如密码输入1个字gaus

也可以用来做接口测试

Filters  相当于数据库里面的where 过滤

另一个更强大的功能,提供了多维度的过滤规则,足以满足日常开发调试的需求,Fiddler的过滤器非常强大,可以过滤特定http状态码的请求,可以过滤特定请求类型的http请求(如css请求,image请求,js请求等)可以过滤请求报文大于或小于等于指定大小(byte)

intrante内网  internet外网

 

利用Fiddler设置断点进行调试修改

1.Fiddler菜单栏-rules-automatic breakpoint选择断点方式

before request 也就是发送请求之后,fiddler代理中转之前,这是可以修改请求的数据

after request 也就是服务器响应之后,在fiddler将响应中转给客户端之前,这是可以修改响应的结果

 

https

我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的。目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度、谷歌等。HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。

一言以弊之,HTTPS是通过一次非对称加密算法(如RSA算法)进行了协商密钥的生成与交换,然后在后续通信过程中就使用协商密钥进行对称加密通信。HTTPS协议传输的原理和过程简图如下所示

 

二、Fiddler抓取HTTPS协议原理

我们都知道,Fiddler是个很好的代理工具,可抓取协议请求用于调试。关于Fiddler抓取HTTP协议的原理和配置比较简单,对Fiddler和客户端稍作配置,便能使得Fiddler轻易地获取HTTP请求。但是由于HTTPS协议的特殊性,要进一步地配置Fiddler,我们首先要了解一下fiddler抓取HTTPS协议的原理才能更好地理解如何对fiddler进行配置。Fiddler本身就是一个协议代理工具,在上一节HTTPS原理图上,客户端与服务器端进行通信的过程全部都由Fiddler获取到,也就是如下图所示:

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325123707130-498383259.jpg

 

服务器—>客户端:Fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文。再次加密, 发送给客户端。

客户端—>服务端:客户端用对称密钥加密,被Fiddler截获后,解密获得明文。再次加密,发送给服务器端。由于Fiddler一直拥有通信用对称密钥enc_key, 所以在整个HTTPS通信过程中信息对其透明。

 

三、Fiddler抓取HTTPS设置

(一)首先对Fiddler进行设置:打开工具栏->Tools->Fiddler Options->HTTPS

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325123820551-1349057932.png

 

选中Capture HTTPS CONNECTs,因为我们要用Fiddler获取手机客户端发出的HTTPS请求,所以中间的下拉菜单中选中from remote clients only。选中下方Ignore server certificate errors.

 

Fiddler抓包之app抓包

1.保证电脑和手机连接的是同一个无线网,可以直接用手机测试也可以用模拟器

抓取http请求

1.设置手机

找到手机连接的wif,双击后点击修改网络---将代理改为为手动代理-----

1)服务器主机名为电脑的ip地址(cmd ipconfig查看)

2)服务器端口设定为8888,必须为8888固定的 ,

3)ip为DHCP点击保存

 

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325123938903-1330144901.png

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325123949705-1759257367.png

2.设置Fiddler

菜单栏点击Tools-Options-Connections  勾选Allow remote computers to connect选项 ,端口改为固定的8888  勾选一下Monitor all connections选项 点击OK

 

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325124037041-1510941237.png

3.设置完毕后,点击手机端的app,Fidder就会出现请求信息了。

抓取https请求

1)Android手机

1.设置Fiddler

菜单栏点击Tools-Options-HTTPS勾选以下3项

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325124123472-160711369.png

2.在手机端安装一下证书

1.在手机浏览器输入以下网址,中间为电脑的ip地址,注意替换

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325124205561-2040014934.png

2.输入后进入以下画面,点击红线标注部分下载证书

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325124219012-1987131729.png

有的安卓手机比如我的华为,点击红线部分下载证书后,网页转到无证书页面。

此时可以百度 Fiddler证书安装问题。解决方法如下

在电脑运行栏输入cmd  进入后

1. cd "C:\Program Files (x86)\Fiddler2"      cd后面为Fiddler安装路径 这一步为进入Fiddler

2.  输入  makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325124307929-1465414900.png

然后在进入手机浏览器输入http://192.168.1.107:8888/  此时就可以下载证书了。

如果手机自动安装的话,直接就可以截取https的包了。

如果手机不自动安装的话,自己要找到下载路径自己点击安装。

如果只想抓取某个app的请求的话

1. 点击Filters进行设置

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325124326164-527576941.png

粘贴host地址的时候要去掉host:后粘贴到上面框里

https://images2018.cnblogs.com/blog/1279587/201803/1279587-20180325124417308-153605579.png

原文:https://www.cnblogs.com/nuonuozhou/p/8643905.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值