02-基础入门-数据包拓展

基础入门-数据包拓展

  • 基础入门-数据包拓展
    • 1、http/https数据包
      • (1)HTTP协议是什么?
      • (2)HTTP原理
      • (3)HTTP特点
      • (4)URI和URL的区别
      • (5)HTTP报文组成
      • (6)响应报文构成
      • (7)常见请求方法
        • 1.get请求
        • 2.post请求
        • 3. post和get的区别
        • 4.响应状态码
        • 5.常见状态码
        • 6.为什么要用https?
        • 7.一般http中存在如下问题
        • 8.什么是HTTPS?
        • 9.那么SSL又是什么?
        • 10.SSL发展史(互联网加密通信)
        • 11.浏览器在使用HTTPS传输数据的流程是什么?
        • 12. HTTPS的缺点
        • 13.总结HTTPS和HTTP的区别
        • 14. http与https的区别
    • 2、windows安装burp
    • 3、burp代理设置
    • 4、演示案例
        • (1)通过御剑后台扫描工具扫描
        • (2)通过burpsuite抓包分析
        • (3)第三方检测修改实现XSS攻击
        • (4)数据包相关校验对比(APP与直接访问)
        • (5)CTF或实际应用中部分考题解析(mozhe)
          • 1. 来源页的伪造
          • 2.浏览器信息伪造
          • 3.HTTP动作练习
          • 4.投票系统程序设计缺陷分析
    • 5、涉及资源

基础入门-数据包拓展

1、http/https数据包

(1)HTTP协议是什么?

1.HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。2.设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。3.HTTP有多个版本,目前广泛使用的是HTTP/1.1版本。

(2)HTTP原理

1.HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML 文件,、图片文件, 查询结果等。2.HTTP协议一般用于B/S架构。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

(3)HTTP特点

1.http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。3.灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。4.无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。5.无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。

(4)URI和URL的区别

1.HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。2.URI:Uniform Resource Identifier 统一资源标识符URL:Uniform Resource Location 统一资源定位符URI 是用来标示 一个具体的资源的,我们可以通过 URI 知道一个资源是什么。3.URL 则是用来定位具体的资源的,标示了一个具体的资源位置。互联网上的每个文件都有一个唯一的URL。

(5)HTTP报文组成

  1. 请求行:包括请求方法、URL、协议/版本
  2. 请求头(Request Header)
  3. 请求正文

Request请求数据包数据格式

请求行:请求类型、请求资源路径、协议的版本和类型

请求行由三个标记组成:请求方法、请求uURL和HTTP版本,他们用空格分享。

例如,GET/index.html HTTP/1.1

HTTP: 规划定义了8种可能的请求方法

GET:检索URL中标识资源的一个简单请求

HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回请求文档

POST:服务器接受被写入客户端输出流中的数据的请求

PUT:服务器保存请求数据作为指定URL新内容的请求

DELETE:服务器删除URL中命令的资源的请求

OPTIONS:关于服务器支持的请求方法信息的请求

TRACE:web服务器反馈Http请求和其头标的请求

CONNECT:已文档化,但当前未实现的一个方法,预留做隧道处理

请求头:一些键值对,浏览器与Web服务器之间都可以发送,特定的某种含义

由关键字/值对组成,每行一对,关键字和值用冒号分享。请求头标通知服务器腾于客户端的功能和标识

HOST:主机或域名地址

Accept:指浏览器或其他客户可以接爱的MIME文件格式。Servlet可以根据它判断并返回适当的文件格式。

User-Agent:是客户浏览器名称

Host:对应网址URL中的Web名称和端口号

Accept-Langeuage:指出浏览器可以接受的语言种类,如en或en-us,指英语

connection:用来告诉服务器是否可以维持固定的HTTP连接。http是无连接的,HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接

Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能。

Referer:表明产生请求的网页URL。比如,从网页/icconcept/index.jsp中点 击一个链接到网页/icwork/search,在向服务器发送的GET/icwork/searchHi 中的请求中,Referer是 http://hostname:8080/icconcept/index.jsp 这个属性可以用来跟踪Web请求是从什么网站来的

Content-Type:用来表名request的内容类型。可以用HttpServletRequest的getContentType()方法取得。

Accept-Charset:指出浏览器可以接受的字箱编码。英文浏览器的默认值是ISO-8859-1

Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然后再检查文件格式。

空行:请求头与请求行之间用一个空行隔开

最后一个请求头标之后是空行,发送回车符和退行,通知服务器以下不再有头标。

请求体:要发送的数据(一般post提交会使用);例如,users=123&pass=123

使用POST传送,最常使用的是     Content-Type 和 Content-Length 头标

(6)响应报文构成

1.状态行
2.响应头
3.响应正文

Response:返回数据包

一个响应由四个部分组成;状态行、响应头标、空行、响应数据

状态行:协议版本、数字形式的状态代码和状态描述,每个元素之间以空格分隔响应头标:包含服务器类型、日期、长度、内容类型等空行:响应头与响应体之间用空行隔开响应数据:浏览器会将实体内容中的数据取出来,生成相应的页面

HTTP响应码

1xx;信息,请求收到,继续处理2xx:成功,行为被成功地接受、理解和采纳3xx;重定向,为了完成请求,必须进一步执行的动作4xx:客户端错误5xx:服务器错误200: 存在文件403:存在文件夹3xx:均可能存在404:不存在文件及文件夹500:均可能存在

响应头标

像请求头标一样,它们指出服务器的功能,标识出响应数据的细节

空行

最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不再有头标

响应数据

HTML文档和图像等,也就是HTML本身

(7)常见请求方法

1.GET:请求指定的页面信息,并返回实体主体。2.POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。3.HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头4.PUT:从客户端向服务器传送的数据取代指定的文档的内容。5.DELETE:请求服务器删除指定的页面。

1.get请求

在这里插入图片描述

2.post请求

在这里插入图片描述

3. post和get的区别

1.都包含请求头和请求行,post多了请求body。2.get多用来查询,请求参数放在url中,不会对服务器上的内容产生作用。post用来提交,如把账号密码放入body中。3.GET是直接添加到URL后面的,直接就可以在URL中看到内容,而POST是放在报文内部的,用户无法直接看到。4.GET提交的数据长度是有限制的,因为URL长度有限制,具体的长度限制视浏览器而定。而POST没有。

4.响应状态码

1.访问一个网页时,浏览器会向web服务器发出请求。此网页所在的服务器会返回一个包含HTTP状态码的信息头用以响应浏览器的请求。2.状态码分类:
1XX- 信息型,服务器收到请求,需要请求者继续操作。
2XX- 成功型,请求成功收到,理解并处理。
3XX - 重定向,需要进一步的操作以完成请求。
4XX - 客户端错误,请求包含语法错误或无法完成请求。
5XX - 服务器错误,服务器在处理请求的过程中发生了错误。

5.常见状态码

200 OK - 客户端请求成功
301 - 资源(网页等)被永久转移到其它URL
302 - 临时跳转
400 Bad Request - 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
404 - 请求资源不存在,可能是输入了错误的URL
500 - 服务器内部发生了不可预期的错误
503 Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

6.为什么要用https?

​ 实际使用中,绝大说的网站现在都采用的是https协议,这也是未来互联网发展的趋势。下面是通过wireshark抓取的一个博客网站的登录请求过程。

在这里插入图片描述

​ 可以看到访问的账号密码都是明文传输, 这样客户端发出的请求很容易被不法分子截取利用,因此,HTTP协议不适合传输一些敏感信息,比如:各种账号、密码等信息,使用http协议传输隐私信息非常不安全。

7.一般http中存在如下问题

1.请求信息明文传输,容易被窃听截取。2.数据的完整性未校验,容易被篡改3.没有验证对方身份,存在冒充危险

8.什么是HTTPS?

​ 为了解决上述HTTP存在的问题,就用到了HTTPS。

​ HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。

9.那么SSL又是什么?

​ SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

​ TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2。

10.SSL发展史(互联网加密通信)

1994年NetSpace公司设计SSL协议(Secure Sockets Layout)1.0版本,但未发布。
1995年NetSpace发布SSL/2.0版本,很快发现有严重漏洞
1996年发布SSL/3.0版本,得到大规模应用
1999年,发布了SSL升级版TLS/1.0版本,目前应用最广泛的版本
2006年和2008年,发布了TLS/1.1版本和TLS/1.2版本

11.浏览器在使用HTTPS传输数据的流程是什么?

在这里插入图片描述

1.首先客户端通过URL访问服务器建立SSL连接。2.服务端收到客户端请求后,会将网站支持的证书信息(证书中包含公钥)传送一份给客户端。3.客户端的服务器开始协商SSL连接的安全等级,也就是信息加密的等级。4.客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。5.服务器利用自己的私钥解密出会话密钥。6.服务器利用会话密钥加密与客户端之间的通信。

12. HTTPS的缺点

1.HTTPS协议多次握手,导致页面的加载时间延长近50%;2.HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;3.申请SSL证书需要钱,功能越强大的证书费用越高。4.SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。

13.总结HTTPS和HTTP的区别

  • HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。
  • http和https使用连接方式不同,默认端口也不一样,http是80,https是443。

在这里插入图片描述

Request	请求数据包
Reponse	相应数据包

在这里插入图片描述

#Requeset	请求数据包
#Proxy		代理服务器
#Reponse	相应数据包
代理的出现在接受数据包和发送数据包的时候提供了修改数据包的机会 
通信过程1.浏览器建立与web服务器之间的连接
2.浏览器将请求数据打包(生成请求数据包)并发送到web服务器
3.web服务器将处理结果打包(生成响应数据包)并发送给浏览器4.web服务器关闭连接总结:
建立连接——>发送请求数据包——>返回响应数据包——>关闭连接-------------------------------------------------------------------------------------------数据格式
请求数据包包含什么
1.请求行:请求类型/请求资源路径、协议的版本和类型
2.请求头:一些键值对,一般由w3c定义,浏览器与web服务器之间都可以发送,表示特定的某种含义3.【空行】请求头与请求体之间用一个空行隔开;4.请求体:要发送的数据(一般post方式会使用);例:userName=123&password=123&returnUrl=/

14. http与https的区别

http通信过程建立连接—>发送请求数据包—>返回响应数据包——>关闭连接1.浏览器建立与web服务器之间的连接
1.浏览器建立与web服务器之间的连接
2.浏览器将请求数据打包(生成请求数据包)并发送到web服务器
3.web服务器将处理结果打包(生成响应数据包)并发送给浏览器
4.web服务器关闭连接

2、windows安装burp

参考文档

配置Java环境

https://www.runoob.com/java/java-environment-setup.html

安装burp

3、burp代理设置

4、演示案例

(1)通过御剑后台扫描工具扫描

  1. 扫描百度

在这里插入图片描述

  1. 扫描本地网站

在这里插入图片描述

(2)通过burpsuite抓包分析

​ — > www.xiaodi8.com和百度

  1. 返回成功 — 200

在这里插入图片描述

  1. 返回失败 — 404

在这里插入图片描述

(3)第三方检测修改实现XSS攻击

  1. 访问第三方检测网站----http://ip.chinaz.com

​ 网站通过request请求数据包来检测主机的ip,地址,浏览器等等

在这里插入图片描述

  1. 抓包分析
    在这里插入图片描述

  2. 各种操作

    1. 修改

      在这里插入图片描述

    2. 修改成 跨站语句

在这里插入图片描述

(4)数据包相关校验对比(APP与直接访问)

(5)CTF或实际应用中部分考题解析(mozhe)

1. 来源页的伪造

在这里插入图片描述

#点击出现以下界面

在这里插入图片描述

#抓取数据包

在这里插入图片描述

#修改数据包中的referer设置为Google.com

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

2.浏览器信息伪造


#进入题目

在这里插入图片描述

#点击进行访问

在这里插入图片描述

#进行抓包分析

在这里插入图片描述

#修改数据包的user-agent:为iPhone手机的2G网络

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

3.HTTP动作练习

在这里插入图片描述

#题目

在这里插入图片描述

#抓包分析

在这里插入图片描述

#原理分析

URL过长,向浏览器传输数据不应该使用get方法,而是使用post

Request请求包由:1.请求行2.请求头3.空行4.请求体组成

Post传输的数据在最后面,最常使用Content-Type 和 Content-Length 头标

注意post方法

1.空行 2.请求体 3.mime类型

content-type: application/x-www-form-urlencoded

application/x-www-form-urlencoded :前端表单提交mime类型

#修改数据包—变更请求方式

方法一:手动修改

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

方法二:

右键 --> change the method ->发送

4.投票系统程序设计缺陷分析

在这里插入图片描述

#点击访问

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

#抓包分析

在这里插入图片描述

#原理分析

限制了每个ip只能投票一次

方法一:使用代理服务器,用工具改变数据包的origin的ip地址,循环发送数据包。

方法二:采用开发程序员PHPip地址检验的绕过—HTTP_X_FORWARDED_FOR

[PHP如何获取客户端ip地址-php教程-PHP中文网](https://www.php.cn/php-weizijiaocheng-99670.html#:~:text=PHP获取客户端ip地址的方法:1、如果没有使用代理服务器,则通过%24_SERVER,[‘REMOTE_ADDR’]来获取;2、若使用了透明代理,则通过%24_SERVER [‘HTTP_X_FORWARDED_FOR’]来获取。)

HTTP 请求头中的 X-Forwarded-For,X-Real-IP - weelin_area - 博客园 (cnblogs.com)

方法一:

在这里插入图片描述

–>添加 X-Forwarded-For
在这里插入图片描述

–>将IP地址作为变量,发送到爆破模块

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

–>设置第一个参数的范围

在这里插入图片描述

–>设置第二个参数的范围

在这里插入图片描述

–>开始爆破

#退出刷新—要退出burpsuite才行

在这里插入图片描述

5、涉及资源

墨者学院: https://www.mozhe.cn/

https://www.bgsafe.cn/thread-52.htm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/5341.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据安全服务,美创科技为“数字国贸” 筑牢安全防线

在数字经济蓬勃发展的当下,国有企业作为国民经济的“中流砥柱”,正以主力军和先行者之姿,以数字化转型创新作为引擎,驱动高质量发展。数字化进程持续深入,伴随数据要素多样流动,降低数据安全风险&#xff0…

【ES三周年】| 基于国产化操作系统搭建ELK日志分析平台

引入 鲲鹏认证-Kylin麒麟操作系统-ELK日志分析平台 开篇 何为ELK Stack?它又能够给我们带来什么? 综述 ELK为三个开源项目的首字母缩写,分别对应是:Elasticsearch、Logstash、Kibana,由这三个软件及其相关的组件可…

互联网+洗鞋店预约小程序新模式;

互联网洗鞋店预约小程序 1、线上线下业务的结合。 传统的线下业务消费者到店可以向其推介线上的预约到家服务,让线下的消费者成为小程序内的会员,留存客户之后线上可直接触达,减少与消费者的距离,从等待客户到可以主动出击&…

css内阴影

CSS内阴影及特定方向内阴影 基本参数: /* x 偏移量 | y 偏移量 | 阴影颜色 */ box-shadow: 60px -16px teal;/* x 偏移量 | y 偏移量 | 阴影模糊半径 | 阴影颜色 */ box-shadow: 10px 5px 5px black;/* x 偏移量 | y 偏移量 | 阴影模糊半径 | 阴影扩散半径 | 阴影…

5.7.2 UDP协议格式(一)——UDP差错控制

5.7.2 UDP协议格式(一)——UDP差错控制 前面我们学习了UDP数据报格式(5.7.1 UDP概述)我们知道UDP只是在IP数据报服务基础上增加了端口的复用和分用功能,以及差错控制的功能,这里我们就一起来学习一下UDP的…

【UE5 Cesium】03-Cesium for Unreal 添加本地数据集

上一篇:【UE5 Cesium】02-Cesium for Unreal 添加在线数据集 步骤 1. 在官网(Adding Datasets – Cesium)上下载一个示例 下载的是一个名为“Tileset.zip”的压缩文件 解压后文件内容如下 2. 打开虚幻编辑器,点击“Blank 3D Tiles…

基于SpringBoot的在线拍卖系统【附ppt和万字文档(Lun文)和搭建文档】

主要功能 主要功能 前台登录: ①首页:轮播图、竞拍公告、拍卖商品展示 ②拍卖商品:分类:手机、数码、电器等,可以点击商品竞拍 ③竞拍公告:可以查看竞拍的信息 ④留言反馈:用户可以提交留言 ⑤…

Windows同时安装两个版本JDK,并实现动态切换

1、载安装两个版本的JDK 安装后,默认路径C:\Program Files\Java。 实际上JDK8有两个包一个jdk1.8.0_311,一个jre1.8.0_311。 JDK11只有一个jdk-11.0.16.1。 2、系统环境配置 设置JAVA_HOME 在环境变量中选中Path,点击编辑 点击新建&…

kubernetes核心概念 service

kubernetes核心概念 Service 一、 service作用 使用kubernetes集群运行工作负载时,由于Pod经常处于用后即焚状态,Pod经常被重新生成,因此Pod对应的IP地址也会经常变化,导致无法直接访问Pod提供的服务,Kubernetes中使…

Verilog基础之十三、ROM实现

目录 一、前言 二、非IP核设计 2.1 工程设计文件读取初始化 2.2 测试代码 2.3 仿真结果 三、IP核创建ROM 3.1 IP核生成ROM 3.2 设计代码 3.3 测试代码 3.4 仿真结果 四、modelsim设置 4.1 模拟信号显示 4.2 信号范围显示设置 五、数据文件 一、前言 对于工程中的…

HashMap源码分析

文章目录 1、put方法流程2 、扩容机制3 、get方法 分析源码我们一般从三个方面入手&#xff1a; 常见属性&#xff08;成员变量&#xff09;构造方法关键方法 下面分析一下HashMap源码&#xff1a; 首先常见属性有&#xff1a; DEFAULT_INITIAL_CAPACITY 1 << 4; // a…

Flink 自定义源算子之 读取MySQL

1、功能说明&#xff1a; 在Flink 自定义源算子中封装jdbc来读取MySQL中的数据 2、代码示例 Flink版本说明&#xff1a;flink_1.13.0、scala_2.12 自定义Source算子&#xff0c;这里我们继承RichParallelSourceFunction&#xff0c;因为要使用open方法来初始化数据库连接对…