fiddler常用命令:
selelct xx: 高亮显示所有的text,js,image等响应类型
?xxx:匹配所有url、protocol、host中包含xxx的会话
=404:选择响应状态码为404的会话
@host:选择包含指定host的会话
>6k:高亮所有尺寸大于6KB的会话
cls:清空所有会话,类似于ctrl+x
dump:将所有的会话打包成 .zip 压缩包的形式保存到 C 盘根目录下。
g 或 go:放行所有中断下来的会话。
hide:将fiddler隐藏;
allbut或keeponly:跟 select 类似,不过 allbut 和 keeponly 会将所有无关的会话删除。
功能点:
AutoResponder:自动回复,将本地资源代替服务端的网络资源传给客户端。添加会话,添加规则,选择正则匹配规则,选择 本地文件,保存。
composer:组合器,克隆之前的请求。拖动请求至右端,自行修改参数,执行。
fiddler的工作原理:
首先fiddler截获客户端浏览器发送给服务器的https请求, 此时还未建立握手。
第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证书, 用根证书公钥进行解密, 验证服务器数据签名, 获取到服务器CA证书公钥。
第二步, fiddler伪造自己的CA证书, 冒充服务器证书传递给客户端浏览器, 客户端浏览器做跟fiddler一样的事。
第三步, 客户端浏览器生成https通信用的对称密钥, 用fiddler伪造的证书公钥加密后传递给服务器, 被fiddler截获。
第四步, fiddler将截获的密文用自己伪造证书的私钥解开, 获得https通信用的对称密钥。
第五步, fiddler将对称密钥用服务器证书公钥加密传递给服务器, 服务器用私钥解开后建立信任, 握手完成, 用对称密钥加密消息, 开始通信。
第六步, fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文。再次加密, 发送给客户端浏览器。
第七步, 客户端向服务器发送消息, 用对称密钥加密, 被fidller截获后, 解密获得明文。
由于fiddler一直拥有通信用对称密钥, 所以在整个https通信过程中信息对其透明。
所有发往服务器的请求都会被fiddler截获。
浏览器打开后就会产生很多进程,每个进程又对应着一个或多个端口,打开一个网页的过程中,操作系统给浏览器的某个进程分配一个端口,动态分配,即为源端口,去访问服务器端的80端口。