Bootstrap

抓包工具--Fiddler

一、Fiddler简介

Fiddler是位于客户端和服务器端的HTTP代理,目前最常用的http抓包工具之一,功能非常强大,是web调试器的利器;它是一款简单的接口测试工具,发HTTP/HTTPS数据包工具

功能

1、监控浏览器所有的HTTP/HTTPS流量

2、查看、分析请求内容细节

3、伪造客户端请求和服务器响应

4、测试网站的性能

5、解密HTTPS的web会话

6、全局、局部断点功能

7、第三方插件

使用场景

1、接口调试、接口测试、线上环境调试、web性能分析

2、判断前后端bug、开发环境hosts配置、mock、弱网断网测试

二、网络基础知识

HTTP请求报文

HTTP请求报文主要由请求行、请求头部、空一行、请求正文(请求体)4部分组成

get请求有时候没有请求体,一般post请求有请求体

请求方法

get:请求资源

post:提交资源

head:获取响应头

put:替换资源

delete:删除资源

options:允许客户端查看服务器的性能

trace:回显服务器收到的请求,用于测试或诊断

URL

统一资源定位符,用于描述网上的资源

格式:schema://host[:port#]/path/.../[?query-string]

schema:协议,如http\https\ftp等

host:域名或ip地址

port:端口

path:资源路径

query-string:发送的参数(key=value的方式进行发送)

请求头

host:主机ip地址或域名

User-Agent:客户端相关信息,如操作系统、浏览器等信息

Accept:指定客户端接收信息类型,如:image/jpg、text/html、application/json

Accept-Charset:客户端接受的字符集,如:gb2312

Accept-Encoding:可接受的内容编码,如gzip

Accept-Language:接受的语言,如zh-cn

Authorization:客户端提供给服务器,进行权限认证的信息

Cookie:携带的cookie信息

referer:当前文档的URL,即从哪个链接过来的

Content-Type:请求体内容类型,如application/x-www-form-urldecode

Content-Length:数据长度

Cache-Control:缓存机制,如no-cache

Pragma:防止页面被缓存,和Cache-Control作用一样

响应报文

主要由状态行、消息报头、空一行、响应正文4部分组成

状态行

传输所用的协议版本+状态码

状态码

1xx:提示信息,中间状态,仍需处理

2xx:成功

3xx:重定向相关(304页面无改变、有缓存)

4xx:客户端问题

5xx:服务器问题

响应头

Server:Http服务器的软件信息

Date:响应报文的时间

Expiress:指定缓存过期时间

Set-Cookie:设置cookie

Last-Modified:资源最后修改时间

Content-Type:响应类型和字符集:text/html

Content-Length:内容长度

Connection:如keep-Aline,表示保持tcp连接,不会永久保持连接,服务器可设置

Location:指明重定向的位置,新的URL地址,如304的情况

三、Fiddler界面详解

快捷键

选择对应的请求按住R键可以重放此请求

选择对应的请求按住Shift+R键可以选择重放此请求的次数(重放多次是重放攻击,不是压力测试)

删除请求,快捷键Delete

删除未被选择的请求,快捷键Shift+Delete

删除所有Ctrl+X

工具栏

1、工具栏的TextWizard是一个加密解密工具

2、底部工具栏的断点点一次是请求前断点,点两次是请求后断点

3、右侧的Statistics是接口请求的数据统计,比如tcp连接用了多久,DNS解析用了多久(常用作性能和web的优化调试)

4、Inspector检查器,用来检查接口的请求体和返回体是什么内容的

5、AutoResponder自动响应器:可用于拦截某一请求,进行如下操作:

1)重定向到本地的资源

2)使用Fiddler的内置响应

3)自定义响应,后端接口未开发好,可以用作接口的调试

6、Composer设计器:可以设计一个请求,模拟一个请求报文执行请求,使用这个方法进行接口测试,可以测出后端对数据的校验是否合理

7、Filter过滤器

主机的过滤、进程的过滤、请求的过滤、断点的过滤、响应的过滤、响应的大小和状态的过滤

8、顶部工具栏:Rules-Automatic Breakingpoint:断点测试,可以进行一些极端测试,比如修改请求体和响应体;模拟网络中断情况下页面响应

请求前断点:命令行bpu + 包含的路径

响应后断点:bpafter + 路径

取消断点:bpafter

9、Rules-Rerformance:弱网测试

四、移动端配置

安卓手机抓包

将手机和电脑在同一个WIFI下,将WIFI中的代理设置为本机电脑的IP,同时Fiddler中Tools-options-Connection-Allow Remote Computers to connect勾选上,就可以在Fiddler上抓手机上的包了;

如果要抓HTTPS的包,需要在手机上安装证书,在手机浏览器上输入地址 http://主机ip:8888 访问,在页面最下面下载Fiddler证书;打开手机的设置-更多设置-系统安全-加密与凭据-从存储设备安装,安装成功之后就可以抓取HTTPS的包

注意:测试完毕,记得关闭代理,否则手机无法上网

IOS手机抓包

将手机和电脑在同一个WIFI下,打开电脑的cmd,ping + 手机WIFI IP,如果可以收到回复,说明在同一个局域网里面;点击设置-WIFI-打开连接的WIFI设置,点击配置代理-手动,设置IOS代理服务器地址为Fiddler所在的主机的IP地址,设置端口为Fiddler监听的端口,点击存储-保存代理设置,就可以捕获HTTP请求;如果要抓HTTPS的包,需要在手机上安装证书,在手机浏览器上输入地址 http://主机ip:8888 访问,在页面最下面下载Fiddler证书,点击安装,安装完成之后,点击设置-通用-关于本机-证书信息设置中,信任刚安装的Fiddler证书,就可以捕获HTTPS的包

插件Willow:

以项目的形式来管理规则

下载地址:Willow - Way to enjoy debugging

Fiddler和Wireshark的区别:

Fiddler是在windows上运行的程序,专门用来捕获HTTP,HTTPS的。

wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。

总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark。

Wireshark:

1、ARP协议(Address Resolution Protocol)是一个通过解析网络层地址来寻找数据链路层地址的网络传输协议,它在IPv4中极其重要,ARP是通过网络地址来定位MAC地址;

我们使用nmap -sn 来基于ARP协议进行扫描

2、ICMP协议:打开一个终端,ping  +网络地址 ,发送一个ping包

3、TCP

4、HTTP

curl是一个在命令行下工作的文件传输工具,我们可以用来发送http请求,curl -I 大写的i,表示仅返回头部信息

B/S架构:

1、编写程序部署到web服务器

2、web服务器运行在服务器上,绑定ip地址并监听某端口,接收和处理http请求

3、客户端通过http协议获取服务器上的网页、文档等资源

(部署资源:tomcat是一个web服务器,用来部署资源用的)

linux中的ll和ls的区别:

ll是罗列出当前文件或目录的详情信息,含有时间、读写权限、大小等信息 ,像Windows显示的详细信息,是ls-l的缩写

ls【-参数】:是比较常用的命令,仅罗列出当前文件名或目录名 就像Windows里的文件列表

;