Fiddler抓包--学习记录

Fiddler抓包–学习记录

抓包简介

什么是抓包(what?)

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存、伪造等操作,可以用来检查网络安全,也经常被用来进行数据截取,校验传输数据等。

抓包能做什么(why?)

网络传输的数据包往往包含很多信息,不管是开发过程中的接口调试,还是测试人员进行安全测试,校验数据准确性,或是分析数据传输协议,都需要抓取数据进行处理和分析。常用场景如下:

  • 分析数据传输协议
  • 定位网络协议,数据准确性问题
  • 从数据包中获取需要的信息
  • 将获取的数据包进行修改、伪造、重发
  • 提高工作效率

怎么抓包(how?)

抓包工具的原理都是从指定的设备(如网卡)上获取到数据,但是如果数据没有流过检测的设备,我们是无法获取数据进行抓包的,常用的接入抓包工具的方法及
抓包工具都是从指定的设备(如网卡)上获取到数据,假如数据没有流过监测的设备,那么我们是抓不到任何想要的数据的,接入抓包工具的方法,常用的有五种

  • 端口镜像:最优模式,不会留下网络痕迹,也不需要下线设备,但是需要交换机支持端口镜像。
  • ARP缓存中毒: 不需要下线设备,比较高效,需要借助其他工具。
  • 集线器: 使用方便,需要下线设备,效率低。
  • 网络分流器: 需要下线设备,成本高,比集线器效率高,抓取光纤设备数据的唯一选择。
  • 工具直接安装到主机:可能会因为主机故障导致数据包被丢弃。

Fiddler抓包常用功能场景

https通信原理

在这里插入图片描述

1.Fiddler截获客户端发送给服务器的HTTPS请求,Fiddler伪装成客户端向服务器发送请求进行握手 。

2.服务器发回相应,Fiddler获取到服务器的CA证书, 用root证书公钥进行解密, 验证服务器数据签名, 获取到服务器CA证书公钥。然后Fiddler伪造自己的CA证书, 冒充服务器证书传递给客户端浏览器。

3.与普通过程中客户端的操作相同,客户端根据返回的数据进行证书校验、生成密码Pre_master、用Fiddler伪造的证书公钥加密,并生成HTTPS通信用的对称密钥enc_key。

4.客户端将重要信息传递给服务器,又被Fiddler截获。Fiddler将截获的密文用自己伪造证书的私钥解开, 获得并计算得到HTTPS通信用的对称密钥enc_key。Fiddler将对称密钥用服务器证书公钥加密传递给服务器。

5.与普通过程中服务器端的操作相同,服务器用私钥解开后建立信任,然后再发送加密的握手消息给客户端。

6.Fiddler截获服务器发送的密文,用对称密钥解开,再用自己伪造证书的私钥加密传给客户端。

7.客户端拿到加密信息后,用公钥解开,验证HASH。握手过程正式完成,客户端与服务器端就这样建立了“信任”

抓取手机https数据包

  1. Fiddler配置

    1.Tools→Options→HTTPS→Caputre HTTPS CONNECTs [相应选项勾上]

    2.Tools→Options→Connections→Allow remote computers to connect [勾上]

在这里插入图片描述
在这里插入图片描述

  1. 手机配置WiFi代理

    打开系统『设置』→『WiFi』→『已连接WiFi属性』
    选择『配置代理』→『手动』会出现代理配置项控件
    配置要代理的IP(fiddler中右上角这里鼠标悬浮可以显示)和端口号(默认为8888),最后保存

在这里插入图片描述

  • 下载证书
    在这里插入图片描述

    1.打开浏览器,访问[代理ip] : [端口号],比如10.1.5.48:8888
    2.点击下面的FiddlerRoot certificate开始下载

  • 安装证书

    • Android
      有以下三种方式安装:
      1.打开系统自带文件管理器,找到下载的FiddlerRoot.cer文件,点击打开,一般要验证密码,然后会提示安装
      2.【设置】里面找到【系统安全】再进入【加密与凭据】选择【从存储设备安装】之后,后面的操作基本和第一种方式一样
      3.有的手机从浏览器上下载完成,浏览器就支持直接安装证书
    • iOS
      1.下载完成会跳到【安装描述文件】界面,点击右上角【安装】,一顿操作之后安装成功
      2.去【设置】→【通用】→【关于本机】→【证书信任设置】→激活证书

主要功能

  • Statistics 统计信息
  • Inspectors 信息分析
  • Fiddler orchestra (远程代理)
  • FiddlerScript (核心配置脚本)
  • Composer 自定义请求
  • AutoResponder 自动响应
  • TimeLine
  • Filters 过滤器
  • Logs 日志

FiddlerScript是Fiddler核心配置的脚本,功能非常强大,它允许你增强Fiddler UI,添加新的特性,修改请求与响应内容等等。
它是基于JScript.NET 语言。在Fiddler 中点击菜单“Rules > Customize Rules”后,可以编写Fiddler Script 脚本,只要一保存,Fiddler 将会重新编译脚本并自动加载,如果加载成功,则会播放声音并在Fiddler 状态栏显示"CustomRules.js was loaded at " 提示信息,如果编译失败,将会显示错误提示信息。

主要方法(static function 方法名)
OnBoot fiddler 启动时调用
OnShutdown fiddler 关闭时调用
OnAttach fiddler 注册成系统代理时调用
OnDetach fiddler 取消注册系统代理时调用
Main 在每次fiddler启动时和编译CustomRules.js 脚本时调用
OnBeforeRequest 常用,在请求之前时调用
OnBeforeResponse 常用,在这个方法中修改Response的内容
OnExecAction 在Fiddler界面中左下方的QuickExec Box,如果你的脚本处理了指定的命令,则返回true,否则返回false
常用的调试方法如下:

OnBeforeRequest

static function OnBeforeRequest(oSession: Session) {
        //会隐藏所有url中包含“localhost”的抓包信息
        if (oSession.uriContains("localhost") {
            oSession["ui-hide"] = "true";
        }
        //将包含指定地址的url标记为某种颜色
        if (oSession.HostnameIs("mobile.touna.cn")) {
            oSession["ui-color"] = "green";
        }
       // Delay sends by 300ms per KB uploaded.请求延迟
       oSession["request-trickle-delay"] = "300"; 
       // Delay receives by 150ms per KB downloaded.响应延迟
       oSession["response-trickle-delay"] = "150"; 
}

在这里插入图片描述
在这里插入图片描述

OnBeforeResponse

//替换指定地址的响应数据
static function OnBeforeResponse(oSession: Session){
       if(oSession.uriContains(".baidu.com")){
            if(oSession.GetResponseBodyAsString().Contains("百度")){
                oSession.utilReplaceRegexInResponse("百度", "投哪");
            } 
        }
}

在这里插入图片描述

AutoResponder

自动响应,本地保存一次respons,激活后会优先覆盖原响应
应用场景:修改respons内容
比较难重现的场景,先本地存一份
如下图点击[Generate File]默认会在桌面保存一分响应的所有数据内容

在这里插入图片描述

编辑自动响应

点击[Edit File With …]会进入 编辑状态
编辑时要注意,修改了body内容,Content-Length会变化,要作相应的加减

在这里插入图片描述

自定义请求

在这里插入图片描述

可以发起16种请求,常用的Http请求get和post,输入url 、header 中的Content-Type、body内容
点击右上角[Execute]开启请求

重复请求

在这里插入图片描述

1.选中会话,可选中多条
2.点击左上角[Replay]或者鼠标右键菜单中选择[Replay]→[Resissue Requests]

断点

可以分别在发送请求之前和响应返回之后修改数据

在这里插入图片描述

当点一次GO时会跳到拦截一小段时间内的请求,此时并不会有返回结果,可以去修改请求参数,再点GO才会有返回结果。当开启断点时,客户端发起请求,页面会卡住,直到点Go或者点Run to Completion断点后,Inspectors里面的内容变为可编辑状态,把word字段修改为“上海”

可以看出左上角还是“深圳”,实际内容已经变成了“上海”,请求参数已经修改成功,所以说一般重要的功能都会对url加密,在实际工作中可以用来测试接口,使用各种参数请求后是否接口报错
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Fiddler是一款常用的网络抓包工具,它可以用于捕获和分析HTTP/HTTPS请求和响应数据。同时,Fiddler还提供了修改请求和响应数据的功能,可以用于调试和测试网络应用程序。下面是关于Fiddler抓包和修改的简要介绍: 1. 抓包功能:Fiddler可以在计算机和服务器之间拦截并记录所有的HTTP/HTTPS请求和响应数据。通过Fiddler,你可以查看请求的URL、请求头、请求体、响应状态码、响应头以及响应体等信息。这对于分析网络请求的过程以及排查问题非常有帮助。 2. 修改请求:Fiddler允许你修改HTTP/HTTPS请求的各个部分,括URL、请求头、请求体等。你可以通过手动编辑或使用Fiddler提供的编辑工具来修改请求数据。这对于模拟不同的请求场景、测试异常情况或者修改请求参数非常有用。 3. 修改响应:除了修改请求,Fiddler还可以修改HTTP/HTTPS响应的内容。你可以通过编辑响应数据来模拟不同的响应场景,例如修改响应体、修改响应头等。这对于测试前端页面的不同状态或者模拟服务器返回特定数据非常有帮助。 4. 自动化脚本:Fiddler还支持使用自动化脚本来批量处理请求和响应数据。你可以使用Fiddler提供的脚本语言来编写自定义的脚本,实现自动化的抓包和修改操作。 总结来说,Fiddler是一款功能强大的网络抓包工具,可以帮助你捕获和分析HTTP/HTTPS请求和响应数据,并且提供了修改请求和响应数据的功能。这使得Fiddler成为了开发、测试和调试网络应用程序的重要工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eric-lv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值