Fiddler(一)
Fiddler:学习scrapy,不只是满足于网页上爬去信息的成功乐趣,现在开始接触爬去手机信息了,不好解决,知道过程不会轻松,但自己想去尝试。QAQ
写这篇博客是基于以下的几位大神学习笔记,我只是做下总结,里面会有具体的图片信息:
https://blog.csdn.net/playstudy/article/details/18921967
https://blog.csdn.net/a877415861/article/details/79447440
https://www.cnblogs.com/miantest/p/7289694.html
Fiddler:基础知识
Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。 代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;
同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。 Fiddler可以抓取支持http代理的任意程序的数据包,如果要抓取https会话,要先安装证书。
HTTP协议
要分析Fiddler抓取的数据包,我们首先要熟悉HTTP协议。HTTP即超文本传输协议,是一个基于请求与响应模式的、无状态的、应用层的协议,绝大多数的Web开发,
都是构建在HTTP协议之上的Web应用。 HTTP的工作过程:当我们请求一个超链接时,HTTP就开始工作了,客户端先发送一个请求到服务器,请求内容包括:协议版本号、请求地址、请求方式、请求头和请求参数;
服务器收到请求后做相应的处理,并将响应数据返回到客户端,响应内容包括:协议版本号、状态码和响应数据。前端根据响应数据做相应的处理,就是最终我们看到的内容
Fiddler的安装
1.下载安装包:"http://www.downza.cn/soft/234727.html"
2.下载.net framework 4.6.2 x64(Fiddler Orachestra Beta会需要):"https://www.fixdown.com/soft/3178.html"
Fiddler的配置(手机和电脑连接同一网络)
1)Fiddler, Tools-> Fiddler Options
HTTPS:
1.选中"Fiddler, Tools-> Fiddler Options"——Fiddler就可以截获HTTPS请求
2.选中"Ignore server certificate errors".
Connections
1.选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来
2)查看本机Ip
ipconfig(192.168.5.147)
3)IPhone设置代理
设置 -> 无线局域网 -> 已连接网络旁边的蓝色感叹号 -> 设置代理
服务器:192.168.5.147
端口:8888
4)打开IPhone 的Safari, 访问 http://192.168.5.147:8888,点"FiddlerRoot certificate" 然后安装证书
5)检查是否设置成功
Iphone:Safari输入:"http://www.cr173.com/z/qvodplayer/."查看Fiddler能否捕获
Fiddler使用
Fiddler支持断点调试技术,当你在软件的菜单—rules—automatic breakpoints选项选择before request,或者当这些请求或响应属性能够跟目标的标准相匹配,
Fiddler就能够暂停Http通讯,并且允许修改请求和响应。这种功能对于安全测试是非常有用的,当然也可以用来做一般的功能测试,因为所有的代码路径都可以用来演习。 通过显示所有的Http通讯,Fiddler可以轻松地演示哪些用来生成一个页面,通过统计页面(就是Fiddler左边的那个大框)用户可以很轻松地使用多选,
来得到一个WEB页面的“总重量”(页面文件以及相关js,css等)你也可以很轻松地看到你请求的某个页面,总共被请求了多少次,以及多少字节被转化了。 用户可以加入一个Inspector插件对象,来使用.net下的任何语言来编写Fiddler扩展。
RequestInspectors 和 ResponseInspectors提供一个格式规范的,或者是被指定的(用户自定义)Http请求和响应视图。
Fiddler软件信息栏
基本信息:
#:顺序号,按照抓包的顺序从1递增
Result:HTTP状态码
Protocol:请求使用的协议,如HTTP/HTTPS/FTP等
HOST:请求地址的主机名或域名
URL:请求资源的位置
Body:请求大小
Caching:请求的缓存过期时间或者缓存控制值
Content-Type:请求响应的类型
Process:发送此请求的进程ID
Comments:备注
Custom:自定义值
Fiddler的QuickExec的简单使用
1、cls
cls清屏命令,输入该命令可以清空会话列表中所有会话cls清屏命令,输入该命令可以清空会话列表中所有会话
2、select
通过select命令可以选择出某一类型HTTP会话的功能。
比如选择出所有的html类型的HTTP会话,命令:select html
比如选择出所有的图片类型的HTTP会话,命令:select image
3、?
?命令可以查找出网址中包含某些字符的会话信息,比如“?baidu”可以查找出网址中包含“baidu”字符串的会话信息。
4、help
执行该命令可以打开Fiddler官方使用手册。
5、>,<
请求body大小的范围
6、=
匹配HTTP返回码(=200)
7、@
@后面跟Host,可以匹配域名(@www.baidu.com)
8、dump
将所有请求打包成saz压缩包,保存到“我的文档\Fiddler2\Captures”目录下
9、start
开始监听请求
10、stop
停止监听请求
Insepector:请求(即客户端发出的数据)和响应(服务器返回的数据)
HTTP Request Headers:
请求方式:GET
协议: HTTP/1.1
Client 头域:
Accept: text/html, application/xhtml+xml, image/jxr, */* ---------浏览器端可以接受的媒体类型
Accept-Encoding: gzip, deflate ---------压缩方法
Accept-Language: zh-CN ---------语言类型
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
---------客户端使用的操作系统和浏览器的名称和版本
COOKIE头域:将cookie值发送给服务器
Transport 头域:
Connection:当网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接是否关闭。keep-alive表示不会关闭,
客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接;close表示关闭,客户端再次访问这个服务器上的网页,需要重新建立连接。
HOST:主机名或域名,若没有指定端口,表示使用默认端口80.
HTTP Response Headers:
协议:HTTP/1.1
状态码:200
Cache头域:
Cache-Control: private ---------此响应消息不能被共享缓存处理,对于其他用户的请求无效
Date: Sat, 05 Aug 2017 04:37:43 GMT ---------生成消息的具体时间和日期
Expires: Sat, 05 Aug 2017 04:37:42 GMT ---------浏览器会在指定过期时间内使用本地缓存
Cookie/Login 头域:
Set-Cookie: BDSVRTM=264; path=/ ---------把cookie发送到客户端
Set-Cookie: BD_HOME=1; path=/
Set-Cookie: H_PS_PSSID=1425_21097_22157; path=/; domain=.baidu.com
Entity头域
Content-Length: 202740 ---------正文长度
Content-Type: text/html;charset=utf-8 ---------告知客户端服务器本身响应的对象的类型和字符集
Miscellaneous 头域:
Bdpagetype: 2
Bdqid: 0x99791efd00036253
Bduserid: 2577220064
Server: BWS/1.1 ---------指明HTTP服务器的软件信息
X-Ua-Compatible: IE=Edge,chrome=1
Security头域:
Strict-Transport-Security: max-age=172800 ---------基于安全考虑而需要发送的参数:http://www.freebuf.com/articles/web/66827.html
Transport头域:
Connection: Keep-Alive 6)TextView:显示请求或响应的数据。
7)WebForms:请求部分以表单形式显示所有的请求参数和参数值;响应部分与TextView内容是一样的。
8)Auth:显示认证信息,如Authorization
9)Cookies:显示所有cookies
10)Raw:显示Headers和Body数据
11)JSON:若请求或响应数据是json格式,以json形式显示请求或响应内容
12)XML:若请求或响应数据是xml格式,以xml形式显示请求或响应内容
13)上面是以百度主页为例,百度主页采用的是GET请求,在TextView中没有请求body,我们再以无忧行网站登录接口为例,它是一个POST请求,除了请求头外,在TextView中多了请求数据。
GET请求是将请求参数放在url中,而POST请求一般是将请求参数放在请求body中。
Fiddler断点功能
通信过程中,在传递信息的中间进行修改后在传递,那么就可以使用Fiddler的断点功能。
1、使用Fiddler的断点,可以实现的功能:
拦截响应数据,并进行相应修改。
修改请求数据中的头信息,实现相应功能,比如模拟用户请求等功能。
构建请求数据,随意进行数据提交。
2、Fiddler断点功能分为两种类型:
响应时断点 Response断点
请求时断点 Resquest断点 设置响应断点方法有两种:
通过可视化操作设置
- Before Requests:拦截所有发送给服务器的请求
- After Responses:拦截所有服务器返回的session
- Disabled :取消断点
1.中断设置
单击Fiddler中的Rules–>Automatic Breakpoints–>After Responses
2.取消响应中断设置
单击Fiddler中的Rules–>Automatic Breakpoints–>Disabled 通过命令去设置。
1.响应断点
bpafter www.baidu.com 对www.baidu.com进行响应断点
bpafter 取消响应断点
2.请求断点
bpu www.baidu.com 对www.baidu.com进行请求断点
bpu 取消请求断点
遇到的问题:
1)执行fiddler文件下fiddler.exe 提示下载.net framework
2)解决Fiddler "creation of the root certificate was not successful”
1.cd "d:\Program Files\Fiddler"--进入Fiddler所在文件
2.makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com"
-sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2020(大于当前时间)
3)配置浏览器代理:(开启fiddler时,该程序会自动配置浏览器代理,导致无法无法上网)
1.chrome -> 设置 -> 高级 -> 打开代理设置 -> 连接 -> 局域网设置 -> 代理服务器:不勾选"为LAN使用代理服务器"
地址:192.168.5.147 端口:8888
2.Fiddler软件会提示"The system proxy was changed.Click to reenable capturing",点击之后,Fiddler会设置浏览器代理
4)只能捕获HTTP,而不能捕获HTTPS的解决办法
1. 先把IPhone上所有的Fiddler证书删除 (拿出IPhone,点”设置“->“通用”->"描述文件")
2. 安装上面的方法,重新安装Fiddler证书
Fiddler(一)的更多相关文章
- fiddler发送post请求
1.指定为 post 请求,输入 url Content-Type: application/x-www-form-urlencoded;charset=utf-8 request body中的参数格 ...
- [转]Fiddler抓取Android真机上的HTTPS包
此篇文章转载自:http://blog.csdn.net/roland_sun/article/details/30078353 工作中经常会需要对一些app进行抓包, 但是每次默认都是只抓http请 ...
- 从Fiddler抓包到Jmeter接口测试(简单的思路)
备注:本文为博主的同事总结的文章,未经博主允许不得转载. Fiddler下载和配置安装 从网上下载fiddler的安装包即可,直接默认,一直点击下一步,直至安装完成. 安装完成后直接打开Fiddler ...
- web开发调试神器——fiddler的使用
好累 以后再写 http://docs.telerik.com/fiddler/knowledgebase/autoresponder
- 用Fiddler模拟低速网络环境
有时候宽频网路用习惯了… 在开发的过程就比较少去考虑最佳化的问题… 但当有人反应说「你的网页好慢」甚至当网路速度慢,会造成你的网页跳出什么啊哩不哒的bug时要如何重现呢? 我们可以用Fiddler 这 ...
- 使用Fiddler抓取手机请求
使用Fiddler抓取手机请求 Fiddler 手机 今天想尝试在手机上抓包,发现一个好玩的小工具——Fiddler. Fiddler是一个专门的抓包工具,可以模拟请求,修改请求,手机应用调试等.还是 ...
- 如何用fiddler对ios抓包
fiddler端设置:(配置好重启fiddler) 1.首先下载安装fiddler,我安装的是fiddler4 2.Tools->Telerik Fiddler Options->HTTP ...
- Fiddler抓包工具使用基础
官网下载Fiddler Fiddler的官方网站: www.fiddler2.com Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监 ...
- [fiddler] 使用fiddler script自定义代理规则
场景 fiddler作为调试代理工具,可以捕获电脑与互联网之间所有http通讯. 通过可视化操作或命令行可以按某些规则截获特定请求并修改,但当我们需要批量对请求进行更复杂的逻辑操作时,则不是很方便. ...
- Fiddler替换HTTP Request Host
原文链接:http://caibaojian.com/fiddler.html 这边指的替换HTTP Request Host是,所有原先发到a.com的HTTP Request , Fiddler都 ...
随机推荐
- [巩固C#] 一、特性是什么东东
阅读目录 关闭 前言 特性是什么? 那么什么是“元数据”? 特性到底是什么? 我们自定义一个特性玩玩 什么是命名参数? 我们来继续要看看AttributeUsage(这个描... 自定义特性可 ...
- Oracle入门基础(1)
1.数据库系统和数据管理系统的区别? 数据库系统=数据库的管理系统+oper操作员+硬件 2.Oracle的版本 8i /9i 10g/11g 12c(cloud) 3.Oracle主要组 ...
- oracle账户密码过期,修改为无限制
查看用户的proifle是哪个,一般是default: sql>SELECT username,PROFILE FROM dba_users; 查看指定概要文件(如default)的密码有效期设 ...
- 集成Springboot+MyBatis+JPA
1.前言 Springboot最近可谓是非常的火,本人也在项目中尝到了甜头.之前一直使用Springboot+JPA,用了一段时间发现JPA不是太灵活,也有可能是我不精通JPA,总之为了多学学Spri ...
- linux创建用户与删除用户及问题解决(ubuntu)
创建的用户不正确,一直在删除创建,发现了挺多问题也学到了一些东西如下是我的总结. (root用户设置: 由于ubtun系统默认是没有激活root用户的,需要我们手工进行操作,在命令行界面下,或者在终端 ...
- jquery常用属性与方法
1..css( )给指定的样式设置样式值: 2..attr(attributeName,value) /.removeAttr(attributeName);给指定的属性设置值 / 清除所有匹配的元素 ...
- 笨办法学Python(二)
习题 2: 注释和井号 程序里的注释是很重要的.它们可以用自然语言告诉你某段代码的功能是什么.在你想要临时移除一段代码时,你还可以用注解的方式将这段代码临时禁用.接下来的练习将让你学会注释: #-- ...
- ffmpeg:编解码过程,基本用法
1 术语: 什么是影片?其实就是一组(很多张)图片,时间间隔很小的连续展示出来,人们就觉得画面中的人物在动,这就是影片.那电影的实质就是N多张图片的集合.那 每张图片和帧又有什么关系呢?事实上,如果 ...
- 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据
比如我创建了一个Sales Order(销售订单)后,如何用代码的方式取出这些通过SAP Partner determination自动填充的Involved Parties信息呢? 一种方法可以使用 ...
- Convolutional Neural Networks from deep learning (assignment 1 from week 1)
Convolutional Neural Networks https://www.coursera.org/learn/convolutional-neural-networks/home/welc ...