




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Fiddler 抓包工具学习文档V1.0编制哈成鹏日期2013-05-25审核日期批准日期发布实施版本修订时间修订人修订类型修订章节修订内容V1.02013-05-25哈成鹏A创建*修订类型分为 A - ADDED M - MODIFIED D DELETED注:对该文件内容增加、删除或修改均需填写此记录,详细记载变更信息,以保证其可追溯。目录第一章 Fiddler的基本功能介绍51.1. Fiddler的基本介绍51.2. Fiddler的工作原理61.3. Fiddler如何捕获Firefox中安装Fiddler插件61.4. Firefox中安装Fiddler插件71.5. Fiddler如何捕获HTTPS会话81.6. Fiddler的基本界面101.7. Fiddler的HTTP统计视图121.8. QuickExec 命令行的使用131.9. Fiddler中设置断点自改Request131.10. Fiddler中设置断点修改Response151.11. Fiddler中创建AutoResponder规则151.12. Fiddler中如何过滤对话171.13. Fiddler中会话比较功能171.14. Fiddler中提供的小工具181.15. Fiddler中查询会话191.16. Fiddler中保存会话191.17. Fiddler的script系统191.18. 如何在VS调试网站的时候使用Fiddler211.19. Pesponse是乱码的22第二章 Fiddler中Script的用法232.1. 关于Fiddler中的Script232.2. 安装Fiddler Script Editor242.3. 修改Session在Fiddler的显示样式252.4. 如何在Fiddler Script中修改Cookie262.5. 如何在Fiddler Script 中修改Request中的body27第三章Composer创建和发送HTTP Request273.1. Fiddler Composer介绍273.2. Fiddler Composer比其他工具的优势283.3. 实例:模拟京东商城的登录283.4. 发送的Request,将出现在左边的Web Session列表中293.5. Parsed和Raw两种编辑模式293.6. 同类工具 Firefox插件Rest Client303.7. 同类工具:Liunx上的Curl30第四章 Mac下使用Fiddler324.1. 使用虚拟机324.2. 虚拟机的网络使用”Bridged”模式324.3. 配置虚拟机上的Fiddler,允许“远程连接”324.4. 获取虚拟机Windows 7的IP地址334.5. 配置Mac,把代理服务器指向Fiddler344.6. 大功告成,开始抓包354.7. 用完后,记得在Mac中禁止代理35第五章 Fiddler实现手机的抓包365.1. 截获智能手机发出的HTTP包有什么用?365.2. 配置Fiddler,允许“远程连接”365.3. 准备工作375.4. Iphone 上安装Fiddler证书385.5. Iphone上配置Fiddler为代理395.6. 开始抓包405.7. 解决只能捕获HTTP,而不能捕获HTTPS的解决方法41附录: WinDiff41如何安装41使用比较42第一章 Fiddler的基本功能介绍1.1. Fiddler的基本介绍Fiddler的官方网站: Fiddler官方网站提高了打两回的帮助文档和视频教程,这是学习Fiddler的最好资料。Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于时间脚本的子系统,并且能使用.NET语言进行扩展你对HTTP学医越了解,你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。Fiddler的作者:Fiddler 的作者是 Eric Lawrence 是个大师级的人物, 目前在微软总部西雅图工作。 他的博客是: /Eric/1.2. Fiddler的工作原理Fiddler是以代理web服务器的形式工作的,它使用代理地址:,端口8888.当Fiddler会自动设置代理,退出的时候他会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动Fiddler。1.3. Fiddler如何捕获Firefox中安装Fiddler插件能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制就是本机上监听8888端口的HTTP代理。Fiddler启动的时候默认IE的代理设为:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为:8888就可以监听数据了。Firefox上通过以下步骤设置代理:点击:Tool Options, 在Options对话框上点击Advanced tab network tab setting。1.4. Firefox中安装Fiddler插件修改Firefox中的代理比较麻烦,不用fiddler的时候还要去掉代理。推荐在firefox中使用fiddlerhook 插件,这样你非常方便的使用Fiddler获取firefox中的request 和response。当你安装fiddler后,就可以安装好Fiddler hook插件,你需要到firefox中区启动这个插件:打开firefox tools Add ons Extensions启动FiddlerHook1.5. Fiddler如何捕获HTTPS会话默认下,Fiddler不会捕获HTTPS会话,需要你设置下,打开Fiddler Tool Fiddler OptionsHTTPS tab选中checkbox,弹出如下的对话框,点击“YES”:点击“YES”后,就设置好了1.6. Fiddler的基本界面看看Fiddler的基本界面Inspectors tab 下有很多查看Request 或者Response的消息。其中Raw Tab可以查看完整的消息,Header tab只查看消息中的header。如下图:1.7. Fiddler的HTTP统计视图通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图标中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化1.8. QuickExec 命令行的使用Fiddler的左下角有个命令行工具叫做QuickExec,允许你直接输入命令。常见的命令有:help:打开官方的使用页面介绍,所有的命令都会列出来cls:清屏Select: 选择会话的命令?.png:用来选择png后缀的图片bpu:截获request1.9. Fiddler中设置断点自改RequestFiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法第一种:打开Fiddler 点击Rules- Automatic Breakpoint -Before Requests(这种方法会中断所有的会话)如何消除命令呢? 点击Rules- Automatic Breakpoint -Disabled第二种: 在命令行中输入命令: bpu (这种方法只会中断)如何消除命令呢? 在命令行中输入命令 bpu看个实例,模拟博客园的登录, 在IE中打开博客园的登录页面,输入错误的用户名和密码,用Fiddler中断会话,修改成正确的用户名密码。这样就能成功登录1. 用IE 打开博客园的登录界面 /login.aspx2. 打开Fiddler, 在命令行中输入bpu /login.aspx3. 输入错误的用户名和密码 点击登录4. Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion 如下图所示。5. 结果是正确地登录了博客园1.10. Fiddler中设置断点修改Response当然Fiddler中也能修改Response第一种:打开Fiddler 点击Rules- Automatic Breakpoint -After Response (这种方法会中断所有的会话)如何消除命令呢? 点击Rules- Automatic Breakpoint -Disabled第二种: 在命令行中输入命令: bpuafter (这种方法只会中断)如何消除命令呢? 在命令行中输入命令 bpuafter,1.11. Fiddler中创建AutoResponder规则Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。看个实例:(1). 打开博客园首页,把博客园的logo图片保存到本地,并且对图片做些修改。(2). 打开Fiddler 找到logo图片的会话, /images/logo_2012_lantern_festival.gif, 把这个会话拖到AutoResponer Tab下(3). 选择Enable automatic reaponses 和Unmatched requests passthrough(4). 在下面的Rule Editor 下面选择 Find a file. 选择本地保存的图片. 最后点击Save 保存下。(5). 再用IE博客园首页, 你会看到首页的图片用的是本地的。1.12. Fiddler中如何过滤对话每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话. Fiddler中有过滤的功能, 在右边的Filters tab中,里面有很多选项, 稍微研究下,就知道怎么用。1.13. Fiddler中会话比较功能选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了 (当然需要你安装WinDiff)(WinDiff详见附录)1.14. Fiddler中提供的小工具点击Fiddler 工具栏上的TextWizard, 这个工具可以Encode和Decode string.1.15. Fiddler中查询会话用快捷键Ctrl+F 打开 Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示。1.16 Fiddler中保存会话有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。 保存会话的步骤如下:选择你想保存的会话,然后点击File-Save-Selected Sessions1.17 Fiddler的script系统Fiddler最复杂的莫过于script系统了 官方的帮助文档:/Fiddler/dev/ScriptSamples.asp首先先安装SyntaxView插件,Inspectors tab-Get SyntaxView tab-Download and Install SyntaxView Now. 如下图安装成功后Fiddler 就会多了一个Fiddler Script tab, 如下图在里面我们就可以编写脚本了, 看个实例 让所有cnblogs的会话都显示红色。把这段脚本放在OnBeforeRequest(oSession: Session) 方法下,并且点击Save script if (oSession.HostnameIs() oSessionui-color = red; 这样所有的cnblogs的会话都会显示红色1.18. 如何在VS调试网站的时候使用Fiddler我们在用visual stuido 开发ASP.NET网站的时候也需要用Fiddler来分析HTTP, 默认的时候Fiddler是不能嗅探到localhost的网站。不过只要在localhost后面加个点号,Fiddler就能嗅探到。例如:原本ASP.NET的地址是 http:/localhost:2391/Default.aspx, 加个点号后,变成 http:/localhost.:2391/Default.aspx 就可以了1.19. Pesponse是乱码的有时候我们看到Response中的HTML是乱码的, 这是因为HTML被压缩了, 我们可以通过两种方法去解压缩。1. 点击Response Raw上方的Response is encoded any may need to be decoded before inspection. click here to transform2. 选中工具栏中的Decode。 这样会自动解压缩。第二章 Fiddler中Script的用法2.1 关于Fiddler中的Script Fiddler 包含了一个脚本文件可以自动修改Http Request 和Response.这样我们就不需要手动地下断点去修改了,实际上它是一个脚本文件CustomRules.js 。位于: C:Documents and Settingsyour userMy DocumentsFiddler2ScriptsCustomRules.js 下。你也可以在Fiddler 中打开CustomRules.js 文件, 启动Fiddler, 点击菜单Rules-Customize Rules.Fiddler Script 的官方帮助文档必须认真阅读, 地址是:/Fiddler/dev/ScriptSamples.asp2.2 安装Fiddler Script Editor你可以直接用notepadCustomRules.js文件,强烈建议下载Fiddler Script Editor 地址是:/fiddler/fse.aspFiddler Script Editor 提供了语法高亮,以及智能提示的功能:(1) CustomRules.js中的主要方法:static function OnBeforeRequest(oSession: Session) / 在这个方法中修改Response的内容,static function OnBeforeResponse(oSession: Session) / 在个方法中包含Fiddler 命令。 在Fiddler界面中左下方的QuickExec Boxstatic function OnExecAction(sParams: String)(2) 给Fiddler添加菜单Fiddler可以模拟各种浏览器,你可以通过点击菜单 Rules-User-Agents不过好像没有Iphone 4S safari 的, 我们现在添加一个。 先查询在网上Iphone 4S safari 的user-Agents, 然后添加如下代码代码就可以了。RulesStringValue(23, Iphone 4S safari, Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7) 保存脚本,重启Fiddler就可以看到菜单中多了个Iphone 4s你可以把你常用的操作,都定义成一个menu。2.3 修改Session在Fiddler的显示样式我们可以控制Session在Fiddler中显示的样式,具体文档是:/Fiddler/dev/SessionFlags.asp把这段脚本放在OnBeforeRequest(oSession: Session) 方法下,并且点击Save script, 这样所有的cnblogs的会话都会显示红色. if (oSession.HostnameIs() oSessionui-color = red; 运行效果如2.4 如何在Fiddler Script中修改Cookiecookie其实就是request 中的一个header./ 删除所有的cookieoSession.oRequest.headers.Remove(Cookie); / 新建cookieoSession.oRequest.headers.Add(Cookie, username=testname;testpassword=Pssword1);注意: Fiddler script不能直接删除或者编辑单独的一个cookie, 你需要用replace方法或者正则表达式的方法去操作cookie的string。static function OnBeforeRequest(oSession: Session) if (oSession.HostnameIs() & oSession.uriContains(pagewithCookie) & oSession.oRequest.headers.Contains(Cookie) var sCookie = oSession.oRequestCookie; / 用replace方法或者正则表达式的方法去操作cookie的string sCookie = sCookie.Replace(cookieName=, ignoreme=); oSession.oRequestCookie = sCookie; 2.5 如何在Fiddler Script 中修改Request中的body方法一:static function OnBeforeRequest(oSession: Session) if(oSession.uriContains(/TankXiao/) / 获取Request 中的body字符串 var strBody=oSession.GetRequestBodyAsString(); / 用正则表达式或者replace方法去修改string strBody=strBody.replace(1111,2222); / 弹个对话框检查下修改后的body FiddlerObject.alert(strBody); / 将修改后的body,重新写回Request中 oSession.utilSetRequestBody(strBody); 方法二:提供一个简单的方法,可以直接替换body中的数据oSession.utilReplaceInRequest(“ 1111”,“2222”);第三章Composer创建和发送HTTP Request3.1 Fiddler Composer介绍Composer的官方帮助文档:/fiddler/help/composer.aspFiddler的作者把HTTP Request发射器取名叫Composer(中文意思是:乐曲的创造者), 很有诗意Fiddler Composer的功能就是用来创建HTTP Request 然后发送。 你可以自定义一个Request, 也可以手写一个Request, 你甚至可以在Web会话列表中拖拽一个已有的Request. 来创建一个新的HTTP Request.3.2 Fiddler Composer比其他工具的优势能创建发送HTTP Request的工具很多。但是Fiddler的功能有如下的优势:(1) 能从”Web会话列表“中拖拽一个先前捕获到的Request,然后修改一下(2) 发送Request后,还能设置断点,继续修改Request。(3) 支持在Request中上传文件(4) 支持发送多次Request3.3 实例:模拟京东商城的登录启动Fiddler, 启动IE, 打开京东,然后输入用户名和密码,登录。 Fiddler 将捕获到这个登录的Request.(1). 首先找出哪个Request 是用来登录的, 然后把它拖拽到Composer中。用来登录的request是这个: /uc/loginService?uuid=6bc79fbf-e882-49bb-b63a-6fd6ee448944(2). 在Composer可以看到,登录是使用POST方法,把用户名和密码发送给服务器。那么我们可以修改Composer中的request内容,比如用户名为:,密码为test1234。(3). Request造好了后, 我们按Execute 按钮就可以发送Request了(如果按住Shift键的同时,按Execute. Fiddler会自动给这个Request下断点)。3.4 发送的Request,将出现在左边的Web Session列表中3.5 Parsed和Raw两种编辑模式Fiddler Composer有两种编辑模式Parsed模式(最常用), 把Request分为三个部分, Request line, Request Headesr, Request Body。很容易创建一个Request.Raw模式,需要你一行一行手动写一个Request。3.6 同类工具 Firefox插件Rest ClientFirefox也有一个插件叫做Rest Client,使用起来也很方便3.7 同类工具:Liunx上的CurlCurl是个命令行工具,功能也很强大第四章 Mac下使用FiddlerFiddler是用C#开发的。 所以Fiddler不能在Mac系统中运行。 没办法直接用Fiddler来截获MAC系统中的HTTP/HTTPS, Mac 用户怎么办呢?Fiddler可以允许“远程连接”。 我们可以利用这个间接来实现Fiddler捕获Mac系统发出的HTTP/HTTPS。4.1 使用虚拟机Mac中安装虚拟机软件(比如VMware Fusion). 然后在虚拟机中安装一个 Windows7系统(别的Window系统都可以), 然后在Windosw7中安装Fiddler4.2 虚拟机的网络使用”Bridged”模式采用“Bridged”模式,可以让虚拟机上运行的Windows 7系统,就像局域网了的一台独立的主机,拥有独立的IP地址4.3 配置虚拟机上的Fiddler,允许“远程连接”在虚拟机中, 打开Fiddler Tools- Fiddler Options 。 (配置完后记得要重启Fiddler).选中Decrpt HTTPS traffic, Fiddler就可以截获HTTPS请求选中Allow remote computers to connect. 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来4.4 获取虚拟机Windows 7的IP地址这个太简单了, 直接在CMD中运行ipconfig. 就可以得到Windows7的IP地址, 或者你可以在Fiddler中得到IP地址。 把鼠标放在 Fiddler 工具栏上的 “Online” 上就可以了。4.5 配置Mac,把代理服务器指向Fiddler在Mac系统中,打开System Preferences Network Advanced Proxies中选择”Web Procy(HTTP)”输入IP地址3和端口8888. 选择”Sexure Web Proxy( HTTPS)”输入IP地址3和端口88884.6 大功告成,开始抓包现在Mac上面任何程序(比如Safari, Firefox, Itunes, App Store)发出的HTTP/HTTPS都可以被Fiddler获取。 实例:在Mac上,打开Safari,(1). 输入/tankxiao. 看看Fiddler能否捕获。(2). 输入/otsweb/ 看看Fiddler能否捕获。是不是HTTP和HTTPS都截获到了?, 你不但能截获, 还可以下断点,修改Request, 修改Response。4.7 用完后,记得在Mac中禁止代理每次用完,一定要记得把Mac上的代理禁止掉,否则容易造成Mac无法上网。第五章 Fiddler实现手机的抓包Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求。Fiddler能捕获IOS设备发出的请求,比如IPhone, IPad, MacBook. 等等苹果的设备。 同理,也可以截获Andriod,Windows Phone的等设备发出的HTTP/HTTPS。前提:安装Fiddler的机器,跟Iphone在同一个网络里,否则Iphone不能把HTTP发送到Fiddler的机器上来。5.1 截获智能手机发出的HTTP包有什么用?用处一:手机软件程序员利用Fiddler,可以截获手机发出的HTTP包,从而调试程序。用处二:软件测试人员用于测试智能手机上的软件。用处三:可以用来在APP应用商店中刷排名。用处四:截获了HTTP/HTTPS后,可以修改Request,或者Response。5.2 配置Fiddler,允许“远程连接”打开Fiddler,Tools Fiddler Options。(配置完后记得要重启Fiddler)选中“Decrpt HTTP traffic”, Fiddler 就可以截获HTTPS请求。选中“Allow remote computers to connect”.是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来5.3 准备工作(1) . 重启Fiddler 。(2) . 获取PC机的IP地址。5.4 Iphone 上安装Fiddler证书这一步是为了让Fiddler能捕获HTTPS请求。(1) . 首先要知道Fiddler所在机器的IP地址(例如:机器IP地址为04)(2) . 打开Iphone的Safari,访问04:8888, 点“FiddlerRoot certificate”然后安装证书5.5 Iphone上配置Fiddler为代理打开Iphone,找到你的网络连接,打开HTTP代理,输入Fiddler所在机器的IP地址(例如:04)以及端口号88885.6 开始抓包现在Iphone上的应用(比如Safari,Firefox,Itunes,App Store)发出的HTTP/HTTPS都可以被Fiddler获取。实例:打开Safari,1. 输入/tankxiao. 看看Fiddler能否捕获2. 输入/otsweb/ 看看Fiddler能否捕获是不是HTTP和HTTPS都捕获到了。你不但能捕获,还可以下断点,修改Request,修改Response。最后,记得把Iphone上的Fiddler代理关闭,一面Iphone上不了网。5.7 解决只能捕获HTTP,而不能捕获HTTPS的解决方法有时候会发现,Fiddler只能捕获Iphone发出的HTTP请求,而不能捕获HTTPS请求,原因可能是证书没有安装好。解决办法是:1. 先把Iphone上所有的Fiddler证书删除(点击“设置” “通用” “描述文件”) 。2. 安装上面的方法,重新安装Fiddler证书 。Fiddler捕获其他手机或平板电脑,使用方法与上面类似。附录: WinDiff Windows的文件比较工具WinDiff 在Windows的安装盘中都有一些附带的工具,默认情况下这些工具是不会被安装的,你需要手工进行安装。在这些工具中就有可以进行文件比较的工具WinDiff,它用图形方式显示比较的结果,方便又直观。 如何安装 不同Windows版本下WinDiff工具的安装是不相同的。在Win98中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国电池基纸原纸行业深度研究及发展前景投资评估分析
- 2025至2030中国电动食品脱水机行业产业运行态势及投资规划深度研究报告
- 2025至2030中国瑞格列奈行业市场占有率及投资前景评估规划报告
- 2025至2030中国玻璃环氧层压板行业产业运行态势及投资规划深度研究报告
- 2025年安宁疗护上半年考核试卷(附答案)
- 物业客服前台培训课件
- 供水安全培训课件
- 教育心理学在提升学生自我认知能力中的应用
- 医疗保健基金的投资策略及风险控制要点
- 智慧港口安全监管先进技术应用
- 高中信息技术面试试讲真题汇总
- 共享直播创业方案
- 慢性肾病防治
- 2023江苏省射阳中等专业学校工作人员招聘考试真题
- 2022-2023学年北京八中物理高一下期末监测模拟试题含解析
- 银行理财经理绩效考核办法(试行)模版
- 《论语》中的人生智慧与自我管理学习通超星课后章节答案期末考试题库2023年
- 电子设计案例教程:基于Flowcode的流码编程
- 电梯司机安全技术交底
- 2022-2023学年黑龙江省宁安市六年级数学第二学期期末达标测试试题含解析
- 人教版物理八年级上册学案及答案(全册)
评论
0/150
提交评论