6.3.6 利用Wireshark进行协议分析(六)----网页提取过程的协议分析

6.3.6 利用Wireshark进行协议分析(六)----网页提取过程的协议分析

利用Wireshark捕获网页访问过程中产生的应用协议报文,还原Web服务中报文的交互过程,为了防止网页直接从本地缓存中获取,我们首先需要清空浏览器保存的历史记录或者数据,具体操作步骤如下

  1. 清空浏览器保存历史记录:打开浏览器,清除浏览数据

    如图

    或者工具下的Internet选项同样也可以清空历史访问数据。

  2. 浏览器地址栏中填写目标主机的域名,在提取网页前浏览器会自动使用DNS域名解析服务以获得Web服务器的IP地址,所以为了捕获到域名解析协议的报文,我们还需要清空本地的DNS告诉缓存,清除所有历史解析的结果。

    1. 进入Doc命令界面

      bash 复制代码
      ipconfig /flushdns

      为了验证DNS缓存已经被清空,使用命令

      bash 复制代码
      ipconfig /displaydns

      查看DNS是否被清空

  3. 运行Wireshark软件,选择网络接口开始捕获数据分组,浏览器地址栏中输入百度的网址回车,返回Wireshark停止捕获,在分组列表中包含了许多的报文,这些报文有许多与本次的访问无关,这就需要我么从中找出网页访问产生的报文。

    使用Wireshark过滤功能

    1. 过滤出本次网页访问相关的DNS应用报文,设置过滤条件为dns是不够的,因为我们需要设置与本机相关的DNS报文。因此这里就需要用到逻辑运算符构造出较为复杂的过滤条件的表达式。IP分组的源地址或者是目标地址为主机的接口地址,如此以来过滤出的报文才是本地产生的,或者是到达本地的分组,当然报文的类型要设置为dns,那么过滤条件就为

      bash 复制代码
      (ip.src==192.168.184.133 || ip.dst==192.168.184.133)&&dns

      ip.src表示IP分组头部中的源IP地址

      ip.dst表示IP分组头部中的目标IP地址

      这里我们会发现分组列表面板中显示的所有报文都是DNS报文,而且这些报文是由本地产生或接收的报文,从报文的信息我们可以看到许多DNS报文与我们访问的百度Web服务器的域名解析无关

    2. 过滤本次网页访问过程中产生的DNS报文

      还需要修改过滤条件为

      bash 复制代码
      (ip.src==192.168.184.133 || ip.dst==192.168.184.133)&&dns.qry.name==www.baidu.com

      就将关于百度的DNS的查询请求报文和DNS查询应答报文

      在分组详情面板中显示了报文的封装结构,从中我们可以看出DNS的应用报文是封装在UDP数据报中进行传送的。

      DNS使用的是熟知端口号53

      我们查看DNS报文可以看到报文包含的详细信息。

      选择应答报文查看DNS报文可以看到在answers字段中给出了解析的结果

      IE浏览器就可以通过这个地址提取网页。

    3. 分析网页提取过程中的HTTP协议的报文的交互过程,需要修改过滤条件

      bash 复制代码
      (ip.src==192.168.184.133 || ip.dst==192.168.184.133)&&http

      为了过滤出网页提取过程中的报文交互,还需要将源地址与目的地址换为百度服务器的IP地址。

      bash 复制代码
      (ip.src==110.242.68.4 || ip.dst==110.242.68.4)&&http

      报文序列显示我们可以看到浏览器程序向服务器发送了多个get命令,来提取网页中不同的资源。服务器再通过HTTP报文将所需的网页元素返回给浏览器,从HTTP报文的封装格式上,我们可以看到HTTP报文是封装在TCP分段报文中传送的。

相关推荐
沫璃染墨11 分钟前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
梧桐16841 分钟前
14天、31个缺陷、28个测试脚本—用 Claude Code 完成第三方软件测试
人工智能·测试工具
蓝祁子yoky1 小时前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习
箓维1 小时前
TCP Socket的进阶实现
网络·笔记·tcp/ip
小羊没烦恼!2 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
小Ti客栈2 小时前
Netty 零拷贝原理与实战
运维·服务器·网络
国科安芯2 小时前
商业光学遥感载荷焦平面供电链的低噪声稳压器研究综述——以国科安芯ASP7A84AS型3A低压差线性稳压器为器件级参照
大数据·网络·嵌入式硬件·平面·卫星·商业航天·抗辐射
静以修身zzz2 小时前
计算云服务
运维·网络·云计算
星恒随风3 小时前
Linux网络编程:应用层协议究竟是什么?从网络计算器到TCP Socket抽象基类完整实现
linux·网络·笔记·tcp/ip
万联WANFLOW3 小时前
异地组网速度忽快忽慢到底怎么回事?直连与中继的判断方法和处理步骤
运维·网络·网络协议·p2p