Fiddler抓包指南:结合Proxifier工具

本文介绍如何使用Fiddler抓取HTTP和HTTPS协议的包,同时还介绍了如何结合Proxifier工具来处理Filddler无法抓取到包的情况。

一、HTTP基本抓包

Fiddler官网下载安装:https://www.telerik.com/fiddler
在这里插入图片描述

对浏览器的抓包,就不再赘述,打开这个软件就一目了然了,本文主要讲对普通Windows桌面应用程序的抓包,点击左下角的两个小图标,让Fiddler进入抓包状态,而且作用于[All Processes]

Fiddler抓包的原理,实际上就是相当于给windows设置了一个HTTP/HTTPS代理,类似于在IE浏览器中设置了代理,如[Internet 选项] — [连接] — [局域网设置] — [高级]中设置代理 [127.0.0.1:8888],Fiddler在8888端口提供HTTP/HTTPS代理服务。
在这里插入图片描述

二、HTTPS抓包

针对HTTPS的抓包,需要开启Fiddler的HTTPS抓包功能,否则只能看到HTTP请求的内容,因为HTTPS请求的是密文。
在Fiddler中点击[Tools] — [Options] — [HTTPS]勾选如下设置:

在这里插入图片描述

点击[Actions] — [Trust Root Certificate] 让系统信任Fiddler的根证书,这是HTTPS抓包解密的关键,接下来就可以愉快的观看HTTPS请求明文内容了。

三、为什么抓不到有些应用程序的HTTP(s)的包?

开启 [All Processes] 抓包后,我们运行第三方程序,会发现有的HTTP/HTTPS包可以抓到,而有的却抓不到,这是怎么回事?那是因为Fiddler的这种设置全局代理的方式,只对以下几种情况有效:

  • IE、Chrome等浏览器。
  • 程序使用Windows提供的WinInet库进行HTTP/HTTPS通信。
  • 程序内嵌WebBrowser,比较常用的是IE控件和CEF。

例如如果应用程序中使用的是libcurl库进行HTTP(s)请求,则fiddler就抓不到包了(解决方法下面会介绍),因为libcurl没有使用windows的WinInet库,而是自己实现了http(s)协议的封装。

如果有程序源码,可以在源码中设置Libcurl使用fiddler作为本地代理,如:

curl_easy_setopt(curl, CURLOPT_PROXY, "127.0.0.1:8888");

四、处理Fiddler无法抓到包的情况

4.1 设置代理

上面说到了,Fiddler抓包的原理是在本机的8888端口开启HTTP/HTTPS代理,任何通过Fiddler代理的HTTP/HTTPS通信内容都会被解析,那么只要能给目标程序设置HTTP/HTTPS代理,目标程序的HTTP(s)通讯内容就可以被Fiddler抓到。

在这里插入图片描述

仔细查看软件设置,其实有些第三方软件比如 [百度网盘] 本身是可以设置HTTP/HTTPS代理的,只要设置为Fiddler的代理端口即可截获它的HTTP/HTTPS通讯内容。

4.2 结合Proxifier

但是有的第三方软件就是没有代理功能,怎么办?既然应用程序不支持设置代理,我们就借助其它软件给它设置代理,比如:
Proxifier: https://www.proxifier.com

以 [网易有道词典] 为例:

在这里插入图片描述

在Proxifier中添加[127.0.0.1:8888] 这个Fiddler提供的HTTPS代理服务器
在这里插入图片描述
设置Proxifier规则,让 [网易有道词典] 通过代理访问网络。

有一点设置通常容易被忽略,就是在Proxifier中,设置[Profile] — [Name Resolution] — 勾选 [Resolve hostnames through proxy],让域名解析的工作交给代理服务器,而不是在Proxifier上解析。默认情况下Proxifier自行解析域名,比如www.baidu.com解析为180.97.33.108,然后发请求给Fiddler:

CONNECT 180.97.33.108:443 HTTP/1.1

这样Fiddler并不知道它请求的是哪个域名,于是返回给客户端的伪造证书时,伪造的是为180.97.33.108颁发的证书,有的客户端会做校验,发现这个证书是颁发给180.97.33.108的,而不是颁发给www.baidu.com的,然后报错处理。
修改Proxifier设置后,把域名解析的工作交给代理服务器,Proxifier会直接向Fiddler发送请求:

CONNECT www.baidu.com:443 HTTP/1.1

这样Fiddler就知道客户端请求的是 www.baidu.com,从而返回客户端伪造的www.baidu.com证书,客户端不报错,Fiddler才能顺利抓包解密。

具体设置步骤如下:
在这里插入图片描述

在这里插入图片描述

4.3 解决Host为“Tunnel to”的问题

按照4.2中介绍的方法,抓取python请求https://www.baidu.com的包,此时在fiddler中会显示“Tunnel to”,无法获取到包的内容,如图:
在这里插入图片描述
从python的提示中,可以看到是SSL证书验证错误,所以python requests的请求也失败了。

Fiddler之所以能抓到并解密HTTPS包的内容,是因为Fiddler使用了中间人攻击的手段,该手段要能成功实施,有一个前提条件,就是客户端信任Fiddler提供的根证书,之前我们通过[Actions] — [Trust Root Certificate] 让系统信任Fiddler的根证书后,大部分浏览器以及基于WinInet库进行HTTP通信的程序,都会信任操作系统中我们添加的Fiddler根证书。但如果第三方程序使用其它HTTP库进行通信,比如libcurl,JAVA的URLConnection库,C#的System.Net.Http,Python的requests,这些HTTP库一般自带了一套可信任的SSL根证书,它们不使用操作系统自带的SSL根证书,更不会使用我们向操作系统中添加的Fiddler根证书,于是就验证出错了。

以Python为例,这一点可以在requests文档中得到证实:
https://2.python-requests.org/en/master/user/advanced/#ca-certificates

Requests bundled a set of root CAs that it trusted, sourced from the Mozilla trust store. The certificates were only updated once for each Requests version.

下面详细给出解决这种问题的2种方法:

  1. 在请求时禁用证书验证。
  2. 在请求时,指定自己生成的证书。

4.3.1 请求时禁用证书验证

以python为例:

import requests
requests.get("https://www.baidu.net", verify = False)

4.3.2 请求时信任自己的证书

访问http://127.0.0.1:8888/,下载Fiddler的根证书,如图:
在这里插入图片描述
然后使用第三方工具转换成对应库可以支持的证书类型,这里以python的requests为例,使用openssl工具转换成其支持的.pem格式:

openssl x509 -inform der -in FiddlerRoot.cer -out fiddler.pem
import requests
requests.get("https://www.baidu.net", verify = "./fiddler.pem")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/350470.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Proxifier v3.0

Proxifier is a program that allows network applications that do not support working through proxy servers to operate through an HTTPS or SOCKS proxy or a chain of proxy servers. Proxifier 是一款简单易用的SOCKS5全局代理软件,尤其适用于IE内核的浏览…

利用Proxifier配置多级代理

​ 实战中碰到这么一种环境:攻击者拿到了Web服务器A的权限(172.16.10.10),但是服务器A不出网,故只能搭建http正向代理。 通过http正向代理扫描,得到内网Web服务器B(172.17.20.7)的Webshell权限,并且Web服务器A只能访问Web服务器B的443web端口,无法访问其他端口,但是Web服…

Proxifier+burpsuite代理https协议数据包

Proxifierburpsuite代理https协议数据包 在现实生活中,很多渗透测试人员无法开展c/s型客户端型应用系统的渗透测试,原因是很难截取客户端访问数据,因而无法借助工具或人工的方式进行漏洞检测。其实部分C/S客户端的数据是可以截取&#xff0c…

Proxifier之小程序抓包

1、准备工具: burp/yakit、微信、proxifier 2、配置proxifier 配置代理服务器:配置本地ip及端口,选择https协议 配置代理规则 WeChat.exe;WeChatAppEx.exe;WeChatPlayer.exe;WechatBrowser.exe 3、配置burp/yakit 选择对应服务器及端口 然…

Fiddler+Proxifier进行PC端微信小程序抓包

1、准备Fiddler和Proxifier 2、fiddler设置 (1)打开设置:Tools-Options (2)点击Connections,设置端口和勾选第二个选项 (3)点击HTTPS,勾选前三个选项,下载证书 3、设置…

proxifier中文汉化版

在日常工作中使用到一些网络不稳定的服务时,经常会遇到一个很头疼的问题,那就是非常慢,很是令人抓狂,所以小编将介绍一款非常好用的代理客户端proxifier(软件下载点击这里),支持socks4,socks5,h…

fiddler抓包及Proxifier配置代理

在开发过程中,一些app项目运行调试不能像chrome浏览器的F12一样,很方便的查看接口调用情况。造成出现一些问题时不方便排查。本例主要介绍一些基本的抓包方法。 一、通过fiddler进行浏览器接口抓包 fiddler4下载:https://pc.qq.com/detail/10…

Proxifier与BurpSuite实现PC小程序抓包

下载安装Proxifier和BurpSuite,安装及破解方法请自行百度。安装完成后启动BurpSuite并将浏览器代理至BP(默认为127.0.0.1:8080),代理后访问http://burp点击右上角CA Certificate下载证书(我这里使用的代理工具是Switch…

Proxifier Socks5 代理(内网访问、远程办公)

适用场景 远程(在家)办公,访问公司内网 资源下载 代理工具 Proxifier: https://pan.baidu.com/s/13NoMcp1F03GXWt90PzsgPA 提取码: 8d3d 使用Proxifier进行Socks5代理 准备工作 socks5代理服务器 socks5代理服务器的搭建可以 使用此do…

使用Proxifier+burp抓包总结

一、微信小程序&网页抓包 1. Proxifier简介 Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。 2. 使用Proxifier代理抓包 原理:让微信相关流量先走127.0.0.1:80到burp。具体…

tinkerCAD入门操作(4):使用对齐工具和工作平面帮助程序

tinkerCAD入门操作(4):使用对齐工具和工作平面帮助程序 介绍 在本课中,我们将建造一座简单的城堡。您将了解有关对齐工具、镜像和帮助程序工具的所有信息。 开始 您将使用的第一个工具是对齐工具。 无需使用鼠标仔细定位两个部分,对齐工具…

程序员必须掌握的消息中间件-RocketMQ

设计(design) 1 消息存储 消息存储是RocketMQ中最为复杂和最为重要的一部分,本节将分别从RocketMQ的消息存储整体架构、PageCache与Mmap内存映射以及RocketMQ中两种不同的刷盘方式三方面来分别展开叙述。 1.1 消息存储整体架构 消息存储架构图中主要有下面三个跟消息…

Android Key Hash生成

在接入FaceBook 安卓第三方登录的时候,就需要获取Debug Android Hash Key。 Android Hah Key有两种,即开发密钥散列和发布密钥散列 获得散列值需要借助openssl工具。 下载并配置openssl 1、下载 到https://code.google.com/archive/p/openssl-for-win…

魔兽地图编辑器实现英雄复活与显示英雄复活倒计时窗口

触发器中,新建计时器变量,计时器窗口变量和一个单位变量 新建一个触发器HeroReviveWindow,事件是单位死亡,触发条件是该单位是英雄 执行的动作是储存该单位到变量(之后复活时要用到),启动倒数计…

魔兽地图编辑器触发音效无法播放

错误原因一: 触发条件设为地图初始化(Map Initialization) 地图初始化不能播放音效 解决办法: 更改触发条件,比如改为Time Elapsed 错误原因二: 声音属性勾选了3d声音 解决办法: 在声音编辑器…

魔兽地图编辑器的给单位加上武器造型

1、复制自定义物品-攻击之爪6; 2、复制自定义技能-增加攻击力的物品 3、修改自定义技能-增加攻击力的物品, 数据-攻击奖励-改为0, 显示-效果-目标-将模型改为-单位投射物-树妖, 显示-效果-目标附加点1-改为“left,hand”&#x…

魔兽争霸3地图编辑 预览图制作方法和载入图制作方法 详细记录

有些东西不记录下来容易忘记,网络上又有很多胡言乱语的,我们必须详细记录。 魔兽争霸3地图编辑 预览图制作方法 第一步:制作图片 用ps制作图片并且必须保存为256x256像素尺寸的图片。 第二步:保存为特定tga格式 制作好必须保…

魔兽地图编辑器插件YDWE的使用与基本设置

魔兽地图编辑器插件YDWE的使用与基本设置 1、YDWE基本介绍:一个功能强大的魔兽地图编辑器插件 2、创建新地图 3、设置地图大小和初始地形 4、打开地形工具面板 5、地形工具面板 6、打开地图属性 7、设置地图说明 8、设置载入画面 9、打开玩家设置 10、设…

深度学习-调参技巧总结

针对CNN优化的总结 使用没有 batchnorm 的 ELU 非线性或者有 batchnorm 的 ReLU。用类似1*1的网络结构预训练RGB数据, 能得到更好的效果。使用线性学习率衰退策略。使用平均和最大池化层的和。使用大约 128(0.005) 到 256 (0.01&a…

java实现内存修改器_魔兽3内存修改器 v8

原文 http://tctianchi.yo2.cn/articles/%e9%ad%94%e5%85%bd3%e5%86%85%e5%ad%98%e4%bf%ae%e6%94%b9%e5%99%a8-v8.html [下载] Filename: war3trainerv8.rar Filesize: 69 kB Upload-Date: 2009/9/8 Download-Link: 請勿用下载工具下載,否则得到错误文件 http://rapidshare.com…