http及https的 抓包分析

2023-11-04

**

HTTP及HTTPS实验

**
1、访问http://wwww.qq.com和https://www.sangfor.com.cn并抓包,分析从PC访问到结束访问网站的全数据流过程
2、分析DNS解析过程及请求回应报文结构,掌握DNS报文结构特征和DNS A记录
3、分析PC和网站建立连接和断开连接的过程(TCP三次握手、四次挥手、RST包抓包)
4、分析HTTP和HTTPS请求报文和响应报文,分析HTTP报文常见字段
HTTP实验:
一:首先我们打开一个新的浏览器输入 http://www.qq.com 然后在后台开启wireshark的抓包功能,这里我选择WLAN(我连接的是 WiFi)。
在这里插入图片描述
在这里插入图片描述
通过cmd窗口下的ipconfig查看电脑本地IP地址为192.168.0.14
在这里插入图片描述
在这里插入图片描述
这时我们知道了自己主机的IP及目标IP,通过浏览器访问,后台运行的抓包工具抓取流量,通过wireshark软件目的IP筛选ip.src == 61.151.166.146 or ip.dst == 61.151.166.146到如图所示的数据包
**

TCP的三次握手:

**
在这里插入图片描述
本机向服务器发送的请求,服务器返回的包:
**

http的请求报文

**
在这里插入图片描述
**

http的响应报文

**
在这里插入图片描述
**

TCP报文

**在这里插入图片描述

**

下面三种状态行在响应报文中常见:

**
HTTP/1.1 202 Accepted {接受}
HTTP/1.1 400 Bad Request {错误的请求}
HTTP/1.1 404 Not Found {找不到}

**

http访问过程

**
1、客户端与服务端建立连接,TCP/IP 三次握手
2、客户端发送请求数据
3、服务端接受并解析请求数据,作出响应
4、返回响应数据
5、断开连接 TCP/IP 四次挥手

**

一、RST介绍

**
RST标示复位、用来异常的关闭连接。

  1. 发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓冲区中的包,发送RST。
  2. 而接收端收到RST包后,也不必发送ACK包来确认。
    **

二、什么时候发送RST包

**

  1. 建立连接的SYN到达某端口,但是该端口上没有正在 监听的服务。
  2. TCP收到了一个根本不存在的连接上的分节。
  3. 请求超时。 使用setsockopt的SO_RCVTIMEO选项设置recv的超时时间。接收数据超时时,会发送RST包。

HTTPS实验
1.我们打开一个新的浏览器输入 https://www.sangfor.com.cn 然后在后台开启wireshark的抓包功能,首先,浏览器和服务器三握手,建立连接。
在这里插入图片描述
4. https的发包过程:浏览器先发送client hello:
客户端给服务器发送一个随机值random1,和加密(暗号)套件。如图所示
在这里插入图片描述
5. 服务器给浏览器(客户端)发送server hello
同时我们从数据包中发现服务器也给客户端发送了一个随机值random2和证书。
在这里插入图片描述
四次挥手:
在这里插入图片描述

RST数据包

在这里插入图片描述

**

DNS解析过程:

**
当你在知浏览器中输入一个网址的时候,系统首先检查本地缓存中有没有相关的记录如果有则直接转道换为IP地址进行访回问,如果没有则连接到你ISP的主DNS服务器进行域名解析,如果还没有则向更上一级的DNS服务器寻找只到找到答为止。

我们在浏览器访问www.baidu.com这个域名,dns怎么查询到这台主机那?DNS解析有大致几个过程,如下:

  1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。

  2. 如果浏览器缓存中没有(专业点叫还没命中),浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个ip地址映射,完成域名解析,或者在windows中可通过c盘里一个叫hosts的文件来设置,如果你在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址。
    但是这种操作系统级别的域名解析规程也被很多黑客利用,通过修改你的hosts文件里的内容把特定的域名解析到他指定的ip地址上,造成所谓的域名劫持。所以在windows7中将hosts文件设置成了readonly,防止被恶意篡改。

  3. 如果至此还没有命中域名,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器(LDNS),这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。

  4. 如果LDNS仍然没有命中,本地DNS就把请求发至13台根DNS (Root Server )域名服务器请求解析, 根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(baidu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找baidu.com域服务器,重复上面的动作,进行查询,直至找到www.baidu.com主机。

  5. LDNS缓存这个域名和对应的ip

  6. LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束

浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

http及https的 抓包分析 的相关文章

  • MySQL高级篇-第06章_索引的数据结构

    1 为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构 就好比一本数课书的目录部分 通过目录中找到对应文章的页码 便可快速定位到需要的文章 MySQL中也是一样的道理 进行数据查找时 首先查看查询条件是否命中某条索引 符合则通
  • 找第一个只出现一次的字符c++

    找第一个只出现一次的字符 提交数 3563 通过率 43 14 平均分 61 55 题目描述 给定一个只包含小写字母的字符串 请你找到第一个仅出现一次的字符 如果没有 输出no 输入格式 一个字符串 长度小于100000 输出格式 输出第一
  • rabbitmq初学之连接测试

    最近在搞接口 需要用到rabbitmq 在公司搞了一个下午还是连接不上 后来细看了英文说明 测试连接成功 得出如下报错几点 我用的安装包 otp win64 17 0 exe erlang vm 和rabbitmq server 3 3 1
  • 消息队列-kafka入门详解

    本文适用于初学者 学习kafka之前 应该都知道它是消息队列 但是和我们印象中数据结构的队列不同的是 它持久化到磁盘上 1 我们首先从定义来看 Kafka 一个分布式的 分区化 可复制提交的日志服务 我们先来想想什么是分区 好比图书馆的书
  • pcb过孔与电流对照一览表_PCB设计项目能不能成功,这个因素占了30%

    电源平面的处理 在PCB设计中占有很重要的地位 在一个完整的设计项目中 通常电源的处理决定项目的30 50 的成功率 本次给大家介绍在PCB设计过程中电源平面处理应该考虑的基本要素 1 做电源处理时 首先应该考虑其载流能力 其中包含2个方面
  • QT-通用的软件界面框架,好看且实用

    QT 通用的软件界面框架 好看且实用 前言 一 演示效果 二 配置说明 三 关键程序 四 程序下载 前言 常规软件开发 使用这种界面框架 基本是可以做很多个常规项目 比较有参考意义 本次软件使用开发的环境是QT5 13 2 VS2017 不
  • House Man 【HDU - 3440】【差分约束】

    题目链接 就是我们必须跳N 1次 从最小的房子跳到最高的房子 然后呢 求最小的房子和最高的房子之间的最长的可能距离 那么就是差分约束咯 我们可以这么推 首先 对于所有的点 a i a i 1 gt 1 那么转换一下 就是a i 1 a i
  • vue 从后端取图片返回发现是两张,但自己只要一张图片 怎么操作

    1 用JavaScript里边常用的分隔符去操作 item original status user profile image url split 0
  • Redis的hyperloglog

    互联网名词 什么是UV Unique Visitor 独立访客 一般理解为客户端IP 需要去重考虑 什么是PV Page View 页面浏览量 不用去重 什么是DAU Daily Active User 日活跃用户量 登录或者使用了某个产品
  • 【7】Docker中部署RabbitMQ

    1 拉取镜像 docker pull rabbitmq 3 8 5 根据我之前在VMware的Centos中装过的 rabbitmq 版本来拉取 3 8 5 的版本 拉取指定版本 3 8 5 的 rabbitmq 镜像 2 守护方式 创建容
  • 最大化参数 火车头_火车头多少吨

    展开全部 火车头的重量一般是126 132吨 最重的是韶山4型改进型车头 重量为184吨 车型62616964757a686964616fe58685e5aeb931333433623735不同而所用的火车头型号也不尽相同 重量也有所差异
  • 代码随想录算法训练营打卡第一天

    代码随想录算法训练营第1天 Leetcode704 二分查找 27 移除元素 704 二分查找 视频链接 https www bilibili com video BV1fA4y1o715 第一遍读题思考 五分钟内 如果没有思路就写暴力解法
  • [C++11]独占的智能指针unique_ptr的初始化和使用

    std unique ptr 是一个独占型的智能指针 它不允许其他的智能指针共享其内部的指针 可以通过它的构造函数初始化一个独占智能指针对象 但是不允许通过赋值将一个 unique ptr 赋值给另一个 unique ptr std uni
  • C++小作业——简单通讯录设计

    界面展示 1 菜单界面 2 添加联系人 选择按钮1 3 显示联系人 选择按钮2 会显示当前通讯录里面的所有联系人信息 include
  • 知识蒸馏算法汇总

    知识蒸馏有两大类 一类是logits蒸馏 另一类是特征蒸馏 logits蒸馏指的是在softmax时使用较高的温度系数 提升负标签的信息 然后使用Student和Teacher在高温softmax下logits的KL散度作为loss 中间特
  • 为什么musql数据库root不需要密码就能登录

    MySQL 数据库的 root 用户是超级用户 它可以访问和修改数据库中的所有内容 所以为了保证数据库的安全性 必须为 root 用户设置密码才能登录 但是 如果当初安装数据库的时候没有设置 root 密码 那么就不需要密码就可以登录
  • select、poll、epoll之间的区别总结[整理]

    http www cnblogs com Anker p 3265058 html 随笔 141 文章 2 评论 298 select poll epoll之间的区别总结 整理 select poll epoll都是IO多路复用的机制 I
  • 办公室里秀一把!用Python控制Excel实现自动化办公!附学习教程

    1 安装 2 操作一个简单的Excel文档 操作注释及代码 操作完成后 数据存储结果如下 3 操作简单Excel文档并添加数据格式 操作代码如下 附带数据格式的定义 操作效果如图所示
  • 【Rust】用libc实现文件拷贝

    macro export macro rules c string s expr gt use std ffi CString CString new s unwrap as ptr macro export macro rules che

随机推荐

  • office表格标题和表格距离过大怎么解决

    设置 表格 布局 属性 文字环绕 环绕 定位 然后修改成如下 垂直 位置 数据为0厘米
  • 如何使用Hyperledger Fabric和Composer构建区块链网络

    如何使用Hyperledger Fabric和Composer构建区块链网络 这是一个区块链开发入门人员的教程 在开始之前要说明Hyperledger Fabric仅在基于Unix的操作系统上运行 因此 它将无法在Windows上运行 这将
  • (一)云计算技术学习--基础概念

    目录 Linux的用户管理 Yum 命令 Python SELinux vsftpd etcd Session Cookie Token LNMP VMware Docker Kubernetes K8S Centos CentOS Com
  • ubuntu中pip3升级出现Traceback (most recent call last): File “/usr/bin/pip3”, line 9, in from pip import

    ubuntu18 04中pip3升级之后遇到这样的问题 Traceback most recent call last File usr bin pip3 line 9 in from pip import main ImportError
  • 超出表空间"users"的空间限额

    这是因为用户被数据库限制了在建表的表空间 执行一下下面的语句后 再执行建表语句 alter user 用户名 quota unlimited on 表空间名字
  • QLabel设置背景图片

    您可以使用Qt的QPalette类来设置QLabel的背景图片 以下是一个简单的示例 include
  • 2021爱分析·房企数字化厂商全景报告

    目录 1 研究范围定义 2 市场全景地图 3 市场定义与厂商评估 4 入选厂商列表 关于爱分析 研究与咨询服务 法律声明 1 研究范围定义 研究范围 本报告研究对象为房企 主要包括从事房地产开发 商写资产运营 物业服务等业务的综合性房地产企
  • [QT编程系列-20]:基本框架 - QT的测试框架QTest

    目录 第1章 QT测试框架与搭建步骤 第2章 Qt Test概述 2 1 概述 2 2 测试代码和项目代码共存 2 3 如何运行测试代码 2 4 ctest命令 第3章 单元测试代码示例 3 1 代码目录结构 3 2 代码示例 第4章 QT
  • Java写Mybatis的配置文件的注意事项

    先来聊聊properties配置文件的一些坑 1 注意自己当前使用的mysql的版本 版本低的 driver配置是 具体的版本是多少忘了 com mysql jdbc Driver 版本高的用 com mysql cj jdbc Drive
  • STM32中断与事件的区别

    STM32中断与事件的区别 在我们配置中断时 时常会困惑于什么是事件模式 EXTI InitStruct EXTI Mode 怎样选择 是选择中断模式还是事件模式 EXTI InitStruct EXTI Line EXTI Line0 E
  • IDEA 控制台输出中文乱码的简单解决方案

    目录 引言 解决方案 第一步 第二步 下载JDK 选择现有的JDK 完成 引言 很多人 包括我 在编程的时候可能会发现 在IDEA的控制台输出中文字符的时候 会出现乱码 如下图 于是就在网上搜了很多教程 结果弄完了却还是不行 下面是我的解决
  • 编译原理(第3版)第二章部分习题答案

    1 文法G A B C a b c P S 其中P为 S gt Ac aB A gt ab B bc 写出L G S 的全部元素 解 L G S 的全部元素为 a b c 2 文法G N 为 N gt D ND D gt 0 1 2 3 4
  • 修改intelliJ IDEA默认Mvnen插件镜像地址 ,加速依赖安装

    前言 1 3叙述的是如何找到idea的mvnen 如果是手动安装的Mvnen 直接跳到4 本文基于Linux平台 mac windows可作参考 如果是ToolBox安装的IDEA 那么桌面启动程序文件一般在 home USER local
  • 华为OD机试 Python 【五子棋迷】

    题目 张兵和王武喜欢玩五子棋 现在轮到张兵了 他面前的棋盘上有一排棋子 棋子规则 1 表示白子 0 表示没子 是个空位 1 表示黑子 一排棋子中 棋子数量L要满足 1 lt L lt 40 并且L是奇数 你要写个程序帮张兵找到最佳的落子位置
  • 【Apache Spark 】第 3 章Apache Spark 的结构化 API

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Tomcat提高并发量,性能优化

    系统采用的常用框架 Mysql SSM Tomcat结构 测试工具使用的是Jmeter 刚开始测试 并发量为200 s 居然错误率达到了15 让我很郁闷 按Tomcat的性能200的并发量应该完全没问题 于是我搜了一下提高Tomcat并发量
  • 区块链入门系列之P2P

    区块链入门系列文章 区块链基本概念和名词解释 P2P 共识算法 梅克尔 帕特里夏树 从零开始搭建区块链 这里写自定义目录标题 区块链入门系列文章 前言 中心化架构 去中心化架构 NAT 锥型NAT 完全锥型NAT 非完全锥型NAT IP受限
  • Devops 基础介绍

    文章目录 前言 一 软件开发概述 1 软件开发生命周期 2 软件开发瀑布模型 3 软件的敏捷开发 3 1 迭代开发 3 2 增量开发 3 3 敏捷开发如何迭代 3 4 敏捷开发的好处 二 持续集成概述 1 什么是持续集成 2 持续集成的流程
  • 嵌入式C中__attribute__编译属性说明

    锲而不舍 金石可镂 文章目录 前言 参数介绍 1 aligned 2 packed 3 at 4 section 总结 前言 attribute 是GNU C扩展下一大特性机制 用于设置函数属性 Function Attribute 变量属
  • http及https的 抓包分析

    HTTP及HTTPS实验 1 访问http wwww qq com和https www sangfor com cn并抓包 分析从PC访问到结束访问网站的全数据流过程 2 分析DNS解析过程及请求回应报文结构 掌握DNS报文结构特征和DNS