我需要你的帮助~是否能解决过的一个最大难题一下Fiddler上的难题?

Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具,很有必要认识一下她。你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。
1、其实,这段是铺垫
场景1:需要调试上线产品的浏览器兼容性问题。假如有Bug发生在Firefox或者Chrome这种有控制台支持调试的浏览器下一切都好说,可是假如bug只发生在遨游,TT,世界之窗,搜狗...这种的没有调试功能的浏览器下...我又该怎么办?
场景2:需要调试服务器上某个HTML/CSS/JavaScript文件。一般情况下,我们都是将文件直接进行修改,然后重新发布再去做验证,这样就容易影响到测试环境或者生成环境的稳定性。更好的做法是,我们在本地开发环境中直接修改文件并进行验证,然后发布到测试环境,这样能保证测试环境的稳定,可是又比较繁琐。
场景3:因为前后端分离的缘故,前端开发时,服务接口经常需要使用jsonp调用,实际上线又是合并打包为同一个域使用ajax。我想直接使用ajax,我不用jsonp,这样我就不用考虑实际上线和开发时候的差别了。
场景4:对于静态资源是另一个内网ip192.168.0.235的服务器上,生产环境中,(因为我们对外的ip基本只有一个)使用nginx等反向代理分发使得html中使用资源的地址可以都是相对地址,如/resource/images/1.png,但是开发时,我们没有nginx也不懂它,又不想改这个资源的相对地址的写法,我如何能做到?
场景5:恶搞没有安全性校验的服务。犹记得之前某团的外卖有个手机点屏幕次数的游戏,这个游戏中点击次数超过多少分才能抽奖。试想了下,它会不会游戏分数是前端生成后传到后台的。用工具抓了下包,结果发现真的是这样,结果发现分数我可以随便改,轻松站在排行榜第一位,真是不想吐槽之。。。
1.2、一些东东
&&&&前端人员在使用chrome浏览器调试网页时,对自带的Web Inspector肯定不会陌生,我们常用NetWork选项来查看资源加载的情况。下面是chrome浏览器的截图:
&&&&有些人可能有听说过有用过HttpWatch、Firebug、Wireshark、TcpTrace...
&&&&都是什么鬼,不都是一些网络抓包工具吗!是的,各取所好各有所长,不过都不是本文要描述的小鬼Fiddler。 & &
2、Fiddler是什么鬼
&&&&我需要一个http抓包工具,不管用什么浏览器,甚至不一定是浏览器,可以是Java程序、.Net程序……它都可以胜任,用它,我能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据。没错,Fiddler小鬼就是这么个强大好用的工具。& &
&&&&它是在web server 和 client 之间搭了一层 proxy,所有的请求都会经过它,如下图所示:
& & Fiddler在web client 与 server 之间充当了一个请求及响应的代理角色,它会在本地建立一个默认代理服务,端口默认为8888,为此我们访问一下此端口,可见如下效果:
&&&&当启用 Fiddler时,IE会设定为使用系统代理,代理地址:127.0.0.1, 端口:8888,因此如果你的浏览器在开启Fiddler之后没有设置相应的代理,则Fiddler是无法捕获到HTTP请求的(FireFox需要手动设置代理,chrome浏览器我使SwitchyOmega)。如下是启动Fiddler之后,IE浏览器的代理设置:
&&&&当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler或者去把代理设置去掉。
3、认识小鬼Fiddler
&&&&借用网上博客图片,我们可以看到几个区域:
(1)监听开关 - 只有两种状态,capturing表示捕捉状态。(ps,但是,我试了我的Fiddler都会捕捉 (/ □ \))
(2)监听类型 - 四种状态分别对应 监听所有请求;监听浏览器请求,监听非浏览器请求,和全部隐藏(Hide All)
(3)命令行 - 允许你直接输入命令,详细官方文档介绍&,常见得命令有:
help &打开官方的使用页面介绍,所有的命令都会列出来
cls & &清屏 &(Ctrl+x 也可以清屏)
select &选择会话的命令
?.jpg &用来选择jpg后缀的图片的会话
bpu &截获request
(4)请求会话列表 - 请求列表的信息分别有 结果(Result),协议(Protocol),主机名(Host),网页地址(URL),内容大小(Body),缓存(Caching),响应的HTTP内容类型(Content-Type),请求所运行的程序(Process),注释(Comments),自定义(Custom)。会话第一列的图标含义:
(5)请求相关信息 - 此部分功能主要对于http请求的分析统计修改等。
Statistics - 统计资料信息
Inspectors - 强大的检查器,类似的Chrome等浏览器的Inspectors可能你不会陌生
Timeline - 时间轴
Composer - 用来创建HTTP Request 然后发送。 你可以自定义一个Request, 也可以手写一个Request, 你甚至可以在请求会话列表中拖拽一个已有的Request. 来创建一个新的HTTP Request
AutoResponder - 自动回复器,这个功能非常常用
Filters - 请求与响应的会话过滤器
4、一些功能技巧
4.1、Filters请求与响应的会话过滤
请求会话列表中存在上百个请求,怎么过滤想要的,可以启用 Fiddler &Filters强大的过滤机制,还可以依据正则来过滤,如: REGEX:(empty.js.gif|__utm.gif) ,具体你可以参考:,下图英文看得懂的话应该很好理解设置,记得使用要勾选Use Filters。
4.2、断点,修改Request、Response
&&&&两种方式
A、第一种(这种方法会中断所有的会话,不大实用,建议用命令。):打开Fiddler 点击Rules-& Automatic Breakpoint &-&Before Requests/After Response /Disabled
B、第二种(这种方法只会中断命令执行的url): bpu在请求开始时中断,bpafter在响应到达时中断,bps在特定http状态码时中断,bpv/bpm在特定请求method时中断。
&&&&以bpu为例演示断点功能(摘抄):
(1)以淘宝无线H5为例,在浏览器打开首页。
(2)在Fiddler命令行输入区输入“bpu”回车执行清掉原有的断点,然后输入“bpu /search.htm”回车执行,接下来就会中断URL中包含此地址的请求。
(3)在浏览器淘宝首页顶端搜索框输入“充气娃娃”后点击搜索,此时请求被中断,在Fiddler会话列表面板看到以红色小图标开头被中断的会话
(4)点击会话列表中被中断的会话,依次进入Inspectors--&WebForms。此时请求并未发出,q参数即为查询关键字,我们修改为“nike”,然后点击“Break on Response”按钮。注:在这里实现修改了请求数据,其它的post数据,甚至是headers里的cookie、referer、user-agent等都可以修改。
(5)右边面板Response区有响应内容了,这时Fiddler再次中断了response,响应已到达Fiddler代理,但还没返回给浏览器。点击Inspectorsg下Response区的“response is encoded and may need to decoded before inspection.Click here to transform”后,即可在TextView tab看到返回的html内容。在这里修改response中的title部分,然后点击“Run to Completino"把修改后的response返回给浏览器。
(6)回到浏览器,搜索出关键字为“nike”的结果,而不是“充气娃娃”,标题也被修改为“搜索充气娃娃”。
命令行输入 go 会断续执行所有中断,再次输入 bpu 会清除所有的断点。
如上第四点图所示,这里有很多的操作选择,就是选择输出内容,选择之后,实际的响应数据就会这些替代,特别是最后一个find 操作a file:这个我们可以中断一个图片,然后这里选择本地的一张图片,这样我们就可以替换页面的图片。比较强大的场景就是例如现网js出了问题,但是一般现网的js是压缩过的,在firebug中根本无法调试,这样我们可以把它映射到本地的一个原始版本,这样firebug就会拿到一份原始的js,就可以方便的调试了。
4.3、AutoResponder请求、响应应答与替换
4.4、模拟user-agent、模拟慢速网络
4.5、Fiddler的script系统
以上4.2-4.5可以看该博客,我不再累述。更高级的可以基于.NET写一些Fiddler插件,使用Fiddler Core库来写一些应用。
4.6、其实官方文档都很详细
,其实有个Alpha Build&
居然不支持localhost或者127.0.0.1的监听,
5、请思考本文开头提出的场景的解决思路
& & 突然,我想到移动端开发,手机上调试网页的时候,Fiddler似乎也可以给我们做点什么:手机上网页打印console,我们无法看到,所以往往排查问题时候,无从下手。既然Fiddler可以做这么多事情,我们是否可以在发现移动端请求的时候响应中加入js console的重写呢?将打印的内容以url方式 http://mytest/content?c=...这个方式访问,再拦截之取得内容,在Fiddler中打印?
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区0x00 前言Fiddler是一款强大的web调试工具,其基本用法网上已经有很详细的教程,这里我就不再多说了。下面只是经验之谈,利用Fiddler各种功能达到自动检测漏洞的目的。0x01 市场需求我们在进行漏洞挖掘过程中,由于需要做大量的请求分析、大量的测试规则,且需要不断的重放修改请求进行探测,这导致消耗的精力、时间巨大。如果我们可以将请求保存下来,本地模拟请求的发送,自动修改请求,加载各种漏洞的测试规则,然后对请求的返回结果、状态进行漏洞特点的判断,那么对一些常见的sql注入、xss漏洞、文件包含等漏洞挖掘就非常的方便了。有了这样的需求,我们来看看Fiddler能否给我们提供很好的技术支持0x02 需求分析Fiddler采用代理的方式捕获请求,能够完美的截获请求头,这样就能满足我们的一些登录会话的需求,以及厂商做了rerferer验证、或者其他请求头验证的情况。而且Fiddler很好的支持https,可保存完整的请求以及发送的数据、参数等信息方便快捷的过滤规则,能够保留我们需要的测试session,轻松过滤一些js、css、图片等不必要的请求。0x03 干活Fiddler虽然支持保存请求头,但是不支持一键保存。每次保存请求头时都需要点一次确认。这使得保存请求非常的不方便。哎!重点来了,看官注意了,后来查询一些资料才知道,Fiddler有一个Fiddler2 Script Editor它支持用户调用其自定义的一些函数,自行编辑脚本,非常简单易懂,位置在rules-&Customize rule下。起初的想法是这样的:在脚本编辑器中有个OnBeforeRequest函数,在该函数下编辑的代码,代表可以在request触发前对request进行处理。我们先在ClassHandlers下定义一个菜单,用于控制开启插件的开关:在OnBeforeRequest函数下增加如下代码:意思就是当捕获到session时就将请求request保存到指定目录来看看效果,在rule下会出现我们添加的菜单,选中它后就开始时时的存储request到本地了:保存本地的request:post数据,参数、数据也都在其中,能够时时的存储request,再配合自己写的一些对request进行模拟请求探索漏洞的工具,每天随便看看网站,逛逛各大厂商就能挖洞!妈妈再也不用担心我会和漏洞url擦肩而过了!是不是特别给咱妈省心?然而这还不能满足我们的需求,因为在工作中我们需要对一些特定的请求进行过滤后再进行测试,比如一些请求有插入数据的功能列如评论,如果这种请求进行自动化探测的话,会带来大量的垃圾数据,往往测试时需要过滤掉。另外时时存储会保存大量request,全部都进行测试效率会降低。利用fiddler的过滤规则,我们已经能够保留我们希望测试的request,如果能有一个命令,能一键保存我们过滤留下的session,那效率将会大大提高。然而fiddler并没有这样的功能,就像上边说到的,保存request每次都会弹框点击确认才行。我们再来看看Fiddler 2 Script Edit是否能解决这个问题。果然在OnExecAction函数下可以让我们自定义命令,输入命令后,执行我们想要的代码,直接上代码:增加一个case,循环保存即可。虽然上面的代码很简单,但是我却分析学习测试了好长时间,包括哪些fiddler的函数可用,用哪个类等等,这段过程就比较曲折了,就不多说了。 来看看效果,打开fiddler,在左下角输入命令saverequest被一键保存了:0x04 总结好了request保存以后,对request的分析,就要靠个人如何去写漏洞识别的工具了,不同的人有不同的思路、想法,但是都离不开原始request,这些就不是本文要讲述的了。希望能给大家一点点帮助。*信息源:http://drops.wooyun.org/tips/15201*铸剑网络安全实验室CSNS-Lab关注我们哦铸剑网络安全实验室(CSNS-Lab) 
 文章为作者独立观点,不代表微头条立场
的最新文章
嘲风安全播报和您一起关注安全1.宁波港股份有限公司struts2 devmode漏洞;2.山东农业工程学院SWEB应用模糊测试(WEB Fuzz)是一种特殊形式的网络协议模糊测试,专门关注遵循HTTP规范的网络数据包先带大家回顾下具体来龙去脉。之前也在公众号上推送了相关内容(台湾 ATM 吐钞盗领事件 公开黑客作案手法)。项目地址:/GDSSecurity/Windows-Exploit-Su小贴士:SSL协议的定义  SSL(Secure Sockets Layer 安全套接层),及其继任者传输一银的ATM盗领案经过警方逮捕3名外籍嫌犯后,并追回六千多万的赃款,也成为目前国际ATM盗领案中,首件追回大项目地址:/cuckoosandbox/cuckoo项目介绍:Cucko项目地址:/ivanfratric/winafl项目介绍:AFL的大名我项目地址:/reverse-shell/routersploit项目介绍项目地址:/EnableSecurity/wafw00f项目介绍:WAF翻译:m6aa8k原文地址:https://reverse.put.as//apple-项目地址:/Ptr32Void/OSTrICa项目介绍:OSTrICa是最近手机游戏Pokémon GO大受欢迎,(全是童年的回忆,皮卡丘!!!)但由于官方版本只在美国、澳大利亚和项目地址:/androguard/androguard项目介绍:Andr为了使路由器更容易配置,硬件厂商指导用户通过访问指定域名,而不是难记的数字IP地址。 网络设备供应商TP-L网络安全公司CheckPoint最近指出,网络犯罪分子在散播Android恶意程序HummingBad,成功项目地址:/digitalocean/netbox项目介绍:NETBOX项目地址:/yvesalexandre/bandicoot项目介绍:Ba艳阳、酒店、泳池营造度假胜地气氛、相对周边国家进步的女性权益、慷慨大方的对外援助,阿拉伯联合大公国(UnitSymantec日前宣布与亚洲诚信(TrustAsia)携手在中国推出「加密无处不在」。「加密无处不在」有助0x00 前言从事互联网安全研究有些年了,研究杀毒软件,安全套装,防火墙,IPS之类的监控设备也有一段时间了部灵感来自于“震网Stuxnet”病毒事件的电影《骇客交锋》(原名“黑帽 Blackhat”),引发了人们对在之前爆出Facebook Messenger存在安全漏洞,黑客可以窜改Messenger手机程序及Face项目地址:/mazen160/Firefox-Security-Tool项目地址:/ProjectAppie/downloads/release下载地址:/store/apps/details?id=su.在上周Linkedin被黑客盗取超过1.17亿条用户资料(注意!注意!LinkedIn领英1.17亿账户在黑0x00 前言在安全发展初期,企业和一些个人使用杀毒软件进行安全防护,如卡巴斯基,symantec等,安全人项目地址:/b3mb4m/shellsploit-framework项目0x00 前言物联网目前是继移动互联网之后的又一个未来IT发展的蓝海。智能设备的不断涌现已经在不知不觉中占领项目地址:/21k/scanner-server项目介绍:网上好用的东西0x01 情况概述监控软件监控到服务器存在异常的访问请求,故对此服务器进行安全检查。通过提供的材料发现内网机项目地址:/K2/EhTrace/项目介绍:EhTrace是由C语言进行项目地址:/cenocipher/cenocipher项目介绍:Ceno0x00 前言之前对Android的两个运行时的源码做了一些研究,又加上如火如荼的Android加固服务的兴项目介绍:/MITRECND/multiscanner项目介绍:
M嘲风小龙,先带大家回顾下本次比赛的详情:指导单位山东省大学生网络安全技能大赛组委会主办单位山东安云信息技术有0x00 隐写原理Jphide是基于最低有效位LSB的JPEG格式图像隐写算法,使用JPEG图像作为载体是因本文作为一篇科普文章,阐述了 Windows 系统中的名称解析机制,同时也提及了几种利用名称解析机制的缺陷进之前,嘲风小龙带大家了解了,如何通过SS7协议,也就是7号信令,来实现现实版的的“窃听风云”,具体查看 :7项目地址:/eik00d/CANToolz项目介绍:CANToolz:使在ctf比赛中,往往会遇到network相关的分析题,这部分题一般采用.pcap文件离线分析的方式进行。在这美国国土安全部下面的计算机紧急应变小组日前发出警告,指SAP一个六年已被修复的漏洞正被人用作攻击。据安全公司在ctf比赛中,往往会遇到network相关的分析题,这部分题一般采用.pcap文件离线分析的方式进行。在这项目地址:/eik00d/CANToolz项目介绍:CANToolz:使之前,嘲风小龙带大家了解了,如何通过SS7协议,也就是7号信令,来实现现实版的的“窃听风云”,具体查看 :7本文作为一篇科普文章,阐述了 Windows 系统中的名称解析机制,同时也提及了几种利用名称解析机制的缺陷进嘲风小龙记得这么一句话:所有漏洞分析,不发布Poc那都是在耍流氓然而,发布之后的效果就是Struts2 S2嘲风安全播报和您一起关注安全1.云南省科学技术情报研究院存在安全漏洞可GETSHELL;2.云南知识产权局存CSNS-Lab关注国内外网络安全,提供高质量的网络安全服务,培养网络空间安全顶尖人才,同时欢迎怀揣各种奇思妙想和创意的有志青年加入我们。热门文章最新文章CSNS-Lab关注国内外网络安全,提供高质量的网络安全服务,培养网络空间安全顶尖人才,同时欢迎怀揣各种奇思妙想和创意的有志青年加入我们。Fiddler初次使用时应注意的几点
&&&&&&&&Fiddler是一个比较强大而又实用的Web调试工具,它能以代理的方式记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出的数据,从而大大提高调试开发效率。
&&&&&&&&同类的工具还有httpwatch,firebug,wireshark,google审查元素。与这些基于网页的工具不同,fiddler是一个富客户端桌面工具,不仅能监听浏览器对网页的请求和对浏览器的响应,而且可以监听其他程序(比如java桌面应用)的http请求(当然需要额外的设置,在此不赘述)。另外,值得一提的是,即便在浏览器的调试中,它也能胜任其他工具,比如IE浏览器,当我们需要弹出一个模式对话框(modalDialog)时,这些浏览器监听插件就派不上用场罗,看来还得fiddler出场。
二、基本原理
&&&&fiddler实现原理,如下图:
&&&&fiddler在客户浏览器及web服务器之间充当了一个请求及响应的代理角色,它会在本地建立一个默认代理服务,端口为8888,为此我们访问一下此端口,可见如下效果:
三、注意的问题及解决方法
&&&&& 在我初次使用fiddler时,遇到了几个问题:
1.chrome和firefox浏览器无法被监听
fiddler安装之后,默认会在IE浏览器中安装一个fiddler的插件,所以它对IE及国内基于IE内核的各类浏览器都能实现监听,但其他内核的浏览器无法被监听。
解决办法:禁用chrome和firefox中具有代理功能的插件,比如我的chrome安装了switchSharp,禁用它或选择&使用代理设置&,或在switchSharp中新配置一个代理项(比如名为fiddler,用于指向代理127.0.0.1,端口8888,如下图),即可实现监听。
2.无法代理本地web服务器的访问请求
使用fiddler的时候,我们更多的是基于本地程序的调试,可惜fiddler捕捉不了本地(localhost或127.0.0.1)的http请求。难道fiddler就束手无策了吗?当然不是。
一般我们访问安装在本地的服务器程序时,使用的localhost或127.0.0.1,默认会绕过代理,直接访问目标服务器,通过fiddler特有的请求方式,可以使本地请求及响应都被fiddler拦截。
方法一:在localhost后增加.fiddler
比如请求http://localhost:8080改为http://localhost.fiddler:8080即可
方法二:更简单,在localhost或127.0.0.1后增加一个点即可
比如http://localhost.:8080
(全文完)
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'你好,能请教一下关于fiddler2使用的一些情况吗?_百度知道

我要回帖

更多关于 fiddler 解决跨域 的文章

 

随机推荐