抓包PC端的设置
为什么一启动fiddler就在抓包?
windows版本,fiddler一启动就自动变成操作系统的代理,能抓取IE,chrome(读取的是IE的设置),chrome用的是默认ie的配置所以也能抓到,但是不能抓取火狐(要手动设置)
为什么关掉fiddler就不能上网?(需要关掉浏览器的代理开关)
因为提琴手启动就会修改系统的代理设置,但是小提琴手退出后,系统的代理设置还在,并没有删除。
需要手动打开即浏览器,把代理开关关掉才确定。
怎么抓指定程序的包,避免其他程序干扰?
Fiddler默认开启的端口为8888。
如果想避免干扰,想抓取制定的程序的包,就手工设置提琴手的端口成7777(随便举个例子),然后重启fiddler后在重启浏览器。把浏览器的代理的端口改成7777
Tools>Options>Connections
查看代理是否设置成功(也就是设置的7777端口是否监听):
在cmd中执行netstat -anop tcp, 查看结果列表里面 是否 有0.0.0.0: 7777(30.10.188.xxx为被代理的手机的IP)。
怎么抓指定的网址,过滤掉CSS,JS?
1.点击右侧的过滤器filters=>勾选使用过滤器=>主机第一个选项:无区域过滤器,第二个选项:仅显示以下主机,然后填写你需要监控的主机,用英文分号隔开。
2.要过滤所有的css,js,在Hide if URL contains: 使用正则如下
REGEX:\.(js|css|google|report|favicon\?.*)+
3.点击Actions,选择:run fileterset now,然后建议你保存一份(保存filterset),以备后面直接可以导入使用,不用每次都去配置。
https://blog.youkuaiyun.com/zhezhebie/article/details/80669691
怎么抓HTTPS包?
1.下载最新版的提琴手,强烈建议在官网下载:HTTPS://www.telerik.com/download/fiddler
2.正常傻瓜式安装,下一步,下一步,安装完毕后,先不用急于打开软件。
3.下载并安装提琴手证书生成器生成证书FiddlerRoot.cer放在桌面上
http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
4.打开Fiddler,点击工具栏中的工具 - >选项 - > https勾选下面3个选项
捕获HTTPS连接,
解密HTTS流量,
忽略服务器证书错误(不安全)
5.工具 - >选项 - > https点击动作,点击第二项:将根证书导出到桌面,这个候桌面上会出现证书FiddlerRoot.cer文件,点击OK设置成功,关闭fiddler
6. PC端,在浏览器中导入证书FiddlerRoot.cer,以谷歌浏览器为例说明,在浏览器上输入:chrome:// settings /然后进入高级设置,点击管理证书,切换到“受信任的根证书颁发机构“选项卡中,对证书进行导入
参考文档:https://www.cnblogs.com/liulinghua90/p/9109282.html
注意事项:
1. 浏览器、fiddler配置好需要重新启动,先启动fiddler,再启动浏览器;
2. 在配置浏览器代理及端口时注意勾选“为所有协议使用相同代理服务器(s)”。
倒入证书后为啥还是不能抓取https的包?
参考百度经验,再重置一下https://jingyan.baidu.com/article/f54ae2fc680be81e92b849ed.html (试了管用)
抓包手机端设置
抓安卓APP报文的3步设置
原文:https://blog.youkuaiyun.com/u011608531/article/details/50838227
https://jingyan.baidu.com/article/ca2d939d1c5dfceb6c31cea6.html
Windows10用fiddler抓包Android应用(解决手机设置代理后无法上网,设置只抓app包)https://blog.youkuaiyun.com/jianglianye21/article/details/81743129
重要的3步
步骤1. 绑定手机网络至fiddler所在的PC机(必须在同一个局域网内)
操作路径: 设置 -> 无线网络 -> 选中连接的wifi -> 高级设置 -> 开启”手动HTTP代理“ -> 编辑”代理服务器主机名“至主机IP
如图所示:
注意:抓包前,必须断开重连wifi
步骤2. 导入ca证书至手机
(1)传输证书至手机 : 可通过手机助手、微信助手等 (2)导入证书
如图:
(3)导入成功
如图:
至此,证书导入成功
步骤3 fiddler设置,允许remote设备连接
操作路径: Tools -> Fiddler Options -> Connections -> 选中”Allow remote computers to connect” (默认是没有勾选的)
Android 7.0 fiddler代理抓不到https请求的解决办法
因为android 7.0以上有有配置安全机制,防止被抓包,需要修改配置。
https://www.cnblogs.com/yaks/p/6946246.html
为什么用fiddler抓app的包显示的都是http(正确应该是https)
证书传到手机端,安装后,
手机端设置手动代理服务,连接到fiddler所在的电脑.
当时没有连接上网络.
常用功能
decode是什么?使用decode解码
(对应反义词是encoded,很多应答报文都是encoded展示的乱码,需要decode后就不是乱码了)
Composer是什么(自己构建请求报文发送)
勾选LogRequests就会记录历史报文。注意:可以直接用鼠标选中某个请求,拖拽到Composer。
composer里面测试数据思路:参数合法、不合法(空、参数取值null、参数超长、类型不对比如int故意改成小数)
前端测试的时候,为什么要注意请求报文的Body列?
APP专项测试--流量测试时,请求报文里面的Body列会显示body的大小是100K还是1000K,用户APP流量测试。
例如APP账号上传1个5M的图片作为头像,看会不会压缩到100K(如果不压缩,流量消耗大)。前端测试里面一般关注是否用gzip做压缩
FIddler怎么压力测试
抓包后,选中想并发的 HTTP请求行,在 Fiddler 界面按下快捷键【Shift + R】(在大写状态下),会弹出设置模拟并发次数的页面,如下所示:
输入模拟并发次数,例如 15,点击 OK 按钮,执行发送请求,结果如下图所示:
Fiddler限速
在无线测试中,网络测试是必不可少的环节,通过网络限速查看页面渲染等效果,能有效保障低速网络下的用户体验和页面性能。Fiddler可通过延迟发送或接收数据的时间来限制网络的下载速度和上传速度,从而达到限速的效果。
Simulate Modem Speed
可通过选择Simulate Modem Speed实现网络限速,入口:Rules → Performances → Simulate Modem Speeds。
网络限速配置(Customize Rules)
勾选Simulate Modem Speeds将选中默认限速模式,默认为上传1kb,delay 300ms, 下载1kb delay 150ms。若想对速度进行控制,需在CustomRules.js中配置,可通过修改配置文件的数值来控制。
参考文档:https://www.cnblogs.com/jinjiangongzuoshi/p/5272787.html
Rules>Customize Rules(Ctrl+R)>就会打开CustomizeRules.js
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "150"
}
request-trickle-delay的值,上传时每KB的数据被延时多少毫秒,300毫秒/kb
response-trickle-delay的值,下载时每KB的数据被延时多少毫秒,100毫秒/kb.
如果本身网速已经相当快的话,这里设置的值就可以近似地推算出开启模拟后的上传和下载带宽了,
比如默认设置下载延时150ms,上传延时300ms,对应可以推算出大致的模拟带宽为:(注意:2.0是修正系统)
上传带宽=((1*8/1000)/0.300)*2.0≈0.106Mbps
下载带宽=((1*8/1000)/0.150)*2.0≈0.053Mbps
抓包看头部Content-Type参数的四种取值
1)application/json 这种就是传json参数{“name1”:”value1”, “name2”,”value2”}
2)application / x-www-form-urlencode这种就是传数据参数name1 = value1&name2 = value2
3)multipart / form-data这一种是表单格式的(文件上传,图片上传等混合式)
4)text / xml这种是XML报文
<! - ?xml version =“1.0”? - > <methodcall> <methodname> examples.getStateName </ methodname>
查看COOKIE
登录前的饼干查看:找到登录前的请求,鼠标选中,看右边区域的饼干标签
登录后曲奇查看:找到登录后的请求消息,切换到右边区域的饼干标签
以下是一个完整的饼干组成结构
cookie = {u'domain':u'.cnblogs.com',u'name':u'.CNBlogsCookie',u'value':u'xxxx',u'expiry':1491887887,u'path':u '/',u'httpOnly':是的,你'保险':FALSE}
注意:饼干是存在客户端的,可以查看到但是提琴手只能看到饼干的名称和Vlues两个值
维持一个会话,是靠会议,会议是存在服务器的内存中的。客户端有一个会话ID传给服务器端去验证。
现在很多系统常用的是令牌校验,令牌有时候会在头部,有时候会在请求报文里(后请求的身体),有时候在URL里(GET请求参数里)
怎么查看302重定向的地址
302状态码的消息,选中后,右侧区域响应头位置位置参数就是重定向后的地址