fiddler使用指南
fiddler使用指南
fiddler 设置
如果要手机抓包的话,需要设置fiddler, 允许远程设备连接 tools/fiddler options/connection/allow remote computers to connect
监控http通讯
开启/停止监控
F12- file/Capture traffic
- quickExec box
start/stop
选择会话
ctrl + click多选shift + click选择连续的会话ctrl + up/down向上/向下选择ctrl + i反选会话 //焦点先定位到 session listP选择当前会话的父会话 //对前端而言,比如选择一个js, 按P,就会定位到html文件C选择子会话 //选择html文件,按C, 定位所有由该html发起的请求, 其实很有用
查找会话
ctrl + f- quickExec box
? keyword,select image,@targetHostnmae,=304
会话对比
选择两个会话,点击右键-compare(需安装对比工具winMerge), 这很有用(两个请求,1个成功返回, 1个报错或被重定向了,这时可以对比两个session)
删除会话
delete删除选中会话shift + delete删除未选中会话
这个其实蛮实用,比如我选中了 所有的图片session(select image) 然后想删掉其余的session, 减少干扰,shift + delete就很方便了(当然也可以先反选再delete)。ctrl + x删除所有会话- quickExec box
cls/clear删除所有会话
会话列表添加列
- quickExec
cols add accept @request.Accept - 在列标题点击右键, 选择 custom column
构造http请求
- compose面板中,完全手动创建
- 拖一个session到compose面板中,修改并发送改请求
- 按住
shift, 点击 execute按钮 , 会在请求发出前断点,允许再次修改
autoResponder自动响应
从左侧拖一个session到autoresponder中,默认会自动创建规则 精确匹配(EXACT:the-url),响应为该session的response(*200-SESSION-6) 如果什么都不改,就是replay的效果;可以在rule list中选择该rule, 按enter编辑响应内容, 非常实用的说
自动响应的规则定义
- 普通字符串
hello.com// 匹配url包含 hello.com 的 - 通配符
*// 匹配所有url NOT: hello// 匹配url不包含hello的EXACT: http://localhost/test.php?foo=BAR//精确匹配 包括大小写- 正则
regex:(?inxs)http://localhost/\w+\.php
如:regex:.+,regex:.+jpg,regex:.+(gif|png|jpg)$
正则支持修饰符inxsiignore case 忽略大小写nrequires explicit capture groups 要求明确的捕获组senables single-line syntax 单行xenables comments after the #character 支持#后加注释
自动响应的内容
- 本地文件
http://targetUrl重定向到目标url(原来的请求参数并无带过去)*redir:http://targetUrl*bpu请求前断点*bpafter响应前断点*delay: Xms延迟发出请求*header: hi=hello修改/新增请求头*CORSPreflightAllow返回允许跨域的header*resetReset the client connection*dropclose the client connection*exit该规则什么都不做,让后续规则处理
实例: 将正则规则捕获到的参数,应用到目标url
rule: regex:youdao\.com(.\*)
action: http://localhost/test.php$1
quickExec
聚焦到quickExec box上: ctrl + alt + f 显示fiddler, alt + q 光标定位到quickExec, 此时如果session list中有选中,ctrl + i 可将选中会话的url粘贴到命令行中.
? hello搜索url包含 hello 的会话> 2000查询 content-length > 2kb的会话, 同>2k< 2000=301查询 statusCode=301的会话=get查询 method=get的会话@localhost查询hostname=localhost的会话bold hello若后续的session的url包含hello,则加粗显示 很实用bold不带参数 则清除之前的设定bpafter api/get/user在匹配的session响应前断点bpafter清除之前bpafter的断点bps 302若session的statusCode=302 则断点bps清除断点bpu hello若请求的url包含hello,则断点;bpu清除断点bpm post若method为post, 则请求前断点; 同bpv postbpm清除断点cls or clear清除session列表g or go继续执行断点help打开帮助网页urlreplace findstr replacestr在url中找到匹配字符串,则替换;似乎不支持正则start开始监听http请求stop停止监听http请求select image查询content-type,匹配关键字则选中响应session,select htmlselect javascriptselect ui-comments helloselect @Request.Accept htmlselect @Response.set-cookie domainallbut html同keeponly html只保留content-type匹配html的会话 实用quit退出fiddler!dns www.hello.com发起dns解析请求
fiddlerScript
添加请求头部
function OnBeforeRequest(oSession) {
oSession.oRequest['x-hi'] = 'hello';
}
将请求重定向到其他主机
function OnBeforeRequest(oSession) {
if(oSession.HostnameIs('test.com')) {
// test.com:90/foo/bar -> localhost:90/foo/bar
oSession.hostname = 'localhost';
}
if(oSession.host == 'foo.com:90') {
oSession.host = 'bar.com:9012';
}
}
将一个url重定向到另外的url
function OnBeforeRequest(oSession) {
if(oSession.url == 'example.com/test.js') {
oSession.url = 'localhost.com/mock-test.js';
}
}
取消发送cookie
function OnBeforeRequest(oSession) {
oSession.oRequest.headers.Remove('Cookie');
}
替换html文件的内容
function OnBeforeResponse(oSession) {
if(oSession.HostnameIs('www.test.com') && oSession.oResponse.headers.ExistsAndContains('Content-type', 'text/html')) {
oSession.utilDecodeResponse();
oSession.utilReplaceInResponse('<b>', '<u>');
}
if(oSession.utilFindInResponse('hello-world', false) > -1) {
oSession['ui-color'] = 'red';
}
if(oSession.oResponse.headers.ExistsAndContains('Content-Type', 'text/html')) {
oSession.utilDecodeResponse();
var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyByte);
oBody.replace(/<div>.*?</div>/, '');
oSession.setResponseBody(oBody);
}
}
网速模拟
function OnBeforeRequest(oSession) {
oSession['request-trickle-delay'] = 300; // delay 300ms to request
oSession['response-trickle-delay'] = 500; // delay 500ms to response
}
手机安装fiddler证书
浏览器访问 http://ipv4.fiddler:8888/, 然后下载证书
fiddler使用指南的更多相关文章
- fiddler抓手机报文的配置指南
前言 1.fiddler大名鼎鼎的抓包工具,而且支持重发,自动解码报文之类. 2.做爬虫时经常遇到需要抓移动端(手机/pad等)报文的情况. 网上各种资料比较,下面这篇是最准确的,转载自csdn:ht ...
- 【转】Fiddler抓包指南:结合Proxifier工具
本文转自:https://blog.csdn.net/china_jeffery/article/details/93000824 本文介绍如何使用Fiddler抓取HTTP和HTTPS协议的包,同时 ...
- Fiddler抓包工具使用指南|手机安装Fiddler的安全证书
Fiddler 4 1.设置: Tools -> Telerik Fiddler Options 勾选远程 手机安装证书 ->使用Android手机的浏览器打开:http://10.2. ...
- Fiddler手机抓包配置指南
前言: 对于开发.测试而言,抓包工具绝对是我们日常测试找bug的必备神器.今天主要介绍的是如何配置Fiddler抓取移动端app请求.首先Fiddler是一个http协议调试代理工具,它能够记录并检查 ...
- 企业IT管理员IE11升级指南【16】—— 使用Compat Inspector快速定位IE兼容性问题
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- Chrome开发者工具不完全指南(六、插件篇)
本篇是Chrome开发者工具的结尾篇,最后为大家介绍几款功能强大的插件.在chrome商店里面有很多插件,没事建议大家去逛逛.不过需要FQ,所以诸位请自备神器.一.皮肤插件 首先是大家期盼已久,翘首以 ...
- 写给 Android 开发的小程序布局指南,Flex 布局!
一.序 Hi,大家好,我是承香墨影! 最近在做小程序,验证一些方向,开发效率确实很快,就是各种微信的审核有点费劲,但是总归是有办法解决的. 想要开发一款小程序,其实和我们正常写一款 App 类似,你需 ...
- Jmeter:性能测试指南(转)
http://yukinami.github.io/2015/11/26/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E6%8C%87%E5%8D%97/ 性能测试指南 ...
- 网络抓包神器-Charles使用指南
http://blog.csdn.net/liulanghk/article/details/46342205 目录 概述 安装 显示模式 PC端抓包 移动应用抓包 其他技能 charles使用问题汇 ...
随机推荐
- python数据类型内置方法 字符串和列表
1.字符串 内置方法操作# a = 'qqssf'#1. print(a[-1:]) #按索引取,正向从0开始,反向从-1开始# print(len(a)) #取长度# a = 'qqssf'# 2. ...
- JavaScript关于函数对象的一些学习总结
1.概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascrip ...
- java 上传图片 并压缩图片大小(转)
Thumbnailator 是一个优秀的图片处理的Google开源Java类库.处理效果远比Java API的好.从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生 ...
- JS_高程4.变量,作用域和内存问题(3)垃圾收集
JavaScript的自动垃圾收集机制 执行环境会负责管理代码执行过程中使用的内存,编写JavaScript程序时,所需内存的分配以及无用内存的回收完全实现自动管理. 原理: 找出那些不再继续使用的变 ...
- JS膏集04
JS膏集04 1.apply和call方法 可以改变this的指向,可以用于函数的调用 apply和call方法中如果没有传入参数,或者传入null,那么调用该方法的函数中的this就是window ...
- C#网络编程技术微软Socket实战项目演练(三)
一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第三部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...
- 使用CSS里的user-select属性控制用户在页面上选中的内容
CSS里的user-select属性用来禁止用户用鼠标在页面上选中文字.图片等,也就是,让页面内容不可选.也可以只允许用户选中文字,或者全部都放开,用户可以同时选中文字.还包括文本里的图片.视频等其它 ...
- C++异常处理解析: 异常的引发(throw), 捕获(try catch)、异常安全
前言: C++的异常处理机制是用于将运行时错误检测和错误处理功能分离的一 种机制(符合高内聚低耦合的软件工程设计要求), 这里主要总结一下C++异常处理的基础知识, 包括基本的如何引发异常(使用th ...
- Scikit-learn 概述
https://www.leiphone.com/news/201701/ZJMTak4Y8ch3Nwd0.html
- 每天一个linux命令:vmstat
1.命令简介 vmstat(Virtual Memory Statistics 虚拟内存统计) 命令用来显示Linux系统虚拟内存状态,也可以报告关于进程.内存.I/O等系统整体运行状态. 2.用法 ...