HTTP请求报文介绍

        本章简要介绍渗透测试员在攻击Web应⽤程序时可能遇到的关键技术。
        将分析HTTP协议、服务器和客⼾端常⽤的技术以及⽤于在各种情形下呈现数据的编码⽅案。
        这些技术⼤都简单易懂,掌握其相关特性对于向Web应⽤程序发动有效攻击极其重要。

1.1 HTTP协议概述介绍

        HTTP(HyperText Trans fer Protocol,超⽂本传输协议)是访问万维⽹使⽤的核⼼通信协议; 也是今天所有Web应⽤程序使⽤的通信协议。
        最初,HTTP只是⼀个为获取基于⽂本的静态资源⽽开发的简单协议,后来⼈们以各种形式扩展和利⽤它; 使其能够⽀持如今常⻅的复杂分布式应⽤程序。
        HTTP使⽤⼀种⽤于消息的模型:客⼾端送出⼀条请求消息,⽽后由服务器返回⼀条响应消息。 该协议基本上不需要连接,虽然HTTP使⽤有状态的TCP协议作为它的底层传输机制,但每次请求与响应交换都会⾃动完成, 并且可能每次访问连接使⽤不同的TCP连接。

1.1.1 HTTP请求报文

        所有HTTP消息(请求与响应)中都包含:
        ⼀个或⼏个单⾏显⽰的消息头(header),在消息头部分主要包含:请求⾏信息和请求头信息
⼀个强制空⽩⾏;
        最后是请求消息主体(可选);
        以下是⼀个典型的HTTP请求:
        每个HTTP请求的第⼀⾏都由3个以空格间隔的请求⾏信息组成。
01 请求报文部分区域详细解读:请求行
        HTTP请求报⽂中请求⾏包含三个信息部分:
HTTP请求报文中常用的请求方法:
        当渗透测试员攻击Web应⽤程序时,⼏乎肯定会遇到最常⽤的⽅法:GET和POST。
        这些⽅法之间存在⼀些必须了解的重要差异,忽略这些差异可能会危及应⽤程序的安全。
请求方法:GET:
        主要作⽤是从Web服务器获取⼀个资源;GET请求并没有消息主体,因此在消息头后的空⽩⾏中没有其他数据。
        所请求的URL中通常有所请求的资源名称路径和名称信息,以及⼀个包含客⼾端向该资源提交的参数的可选查询字符串组成;
        在该URL中,查询字符串以?字符标识,上⾯的⽰例中有⼀个名为uid、值为129的参数;
        可以采⽤URL查询字符串的形式向所请求的服务端发送参数。
        这使客⼾端可将⼀个包含动态资源的URL标注为书签,⽤⼾⾃⼰或其他⽤⼾随后可重复利⽤该书签来获取等价的资源;
        URL显⽰在浏览器地址栏中,并可以被记录在许多地⽅,如浏览器的历史记录和Web服务器的访问⽇志中。
        如果单击外部链接,还可以⽤Referer消息头将它们传送到其他站点。因此,请勿使⽤查询字符申传送任何敏感信息。
请求⽅法:POST:
        作⽤本质也是从Web服务器获取⼀个资源,但主要作⽤是完成执⾏操作(可以理解为是需要在客⼾端提交信息给服务端)。
        使⽤这个⽅法可以在URL查询字符时,在消息主体中发送请求参数。
        尽管仍然可以将URL标注为书签,但书签中并不包含消息主体发送的任何参数。
        许多维护URL⽇志的位置及Referer消息头也将这些参数排除在外。
        因为POST⽅法旨在执⾏操作,如果⽤⼾单击浏览器上的“后退”按钮,返回⼀个使⽤这种⽅法访问的⻚⾯;
        那么浏览器不会⾃动重新发送请求,⽽是就即将发⽣的操作向⽤⼾核实确认;
        这样做可防⽌⽤⼾⽆意中多次执⾏同⼀个操作;所以在执⾏某⼀操作时必须使⽤POST请求
请求方法:HEAD:
        这个⽅法的功能与GET⽅法相似,不同之处在于服务器不会在其响应中返回消息主体。
        服务器返回的消息头应与对应GET请求返回的消息头相同。
        因此,这种⽅法可⽤于检查某⼀资源在向其提交GET请求前是否存在。
        HEAD请求⽅法实际应⽤⽰例:
        GET⽅法请求会在响应报⽂中包含响应主体信息;
        HEAD⽅法请求会在响应报⽂中不会包含响应主体信息;
请求方法:OPTIONS:
        这种⽅法要求服务器报告对某⼀特殊资源有效的HTTP⽅法。
        服务器通常返回⼀个包含Allow消息头的响应,并在其中列出所有有效的⽅法。
        OPTIONS请求⽅法实际应⽤⽰例:
        在利⽤此⽅法对⽹站 / 资源进⾏访问时,可以在响应报⽂的Allow字段中,获取到⽹站服务端允许客⼾端的请求⽅法信息;
        此时,如果能够看到TRACE DELETE MOVE COPY不安全的⽅法信息,并结合Public中的PUT⽅法信息;
        表⽰⽹站是可能会存在被⼊侵的安全隐患;
请求方法:PUT:
        这个⽅法试图使⽤包含在请求主体中的内容,向服务器上传指定的资源。
        如果激活这个⽅法,渗透测试员就可以利⽤它来攻击应⽤程序。
        例如,通过上传任意⼀段脚本并在服务器上执⾏该脚本来攻击应⽤程序。
请求方法:TRACE:
这种⽅法主要⽤于诊断。服务器应在响应主体中返回其收到的请求消息的具体内容。
这种⽅法可⽤于检测客⼾端与服务器之间是否存在任何操纵请求的代理服务器,会将有这种⽅法允许的⽹站漏洞定义为中低危漏洞;
参考资料: https://www.cnblogs.com/xiaodangshan/p/7715313.html
禁⽌⽅法: https://www.cnblogs.com/shaoing/p/17716464.html
HTTP请求报⽂中请求资源的⽅法:
        在请求⾏的第⼆字段部分会添加需要请求的资源的uri信息,常⻅的请求资源的⽅法主要有:
        get⽅法请求:uri信息主要是由资源路径和资源名称信息,以及有些请求的参数信息组成;
        post⽅法请求:url信息主要是由资源路径和资源名称信息组成;
HTTP请求报⽂中常⽤的协议版本:
        因特⽹上常⽤的HTTP版本为1.0和1.1,多数浏览器默认使⽤1.1版本,在有些特殊场景下还会使⽤2.0版本进⾏通讯
        这三个版本的规范之间存在⼀些差异;然⽽,当攻击Web应⽤程序时,渗透测试员可能遇到的唯⼀差异是1.1版本必须使⽤Host请求头。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【学习笔记】R语言入门与数据分析1

数据分析 数据分析的过程: 数据采集 数据存储 数据分析 数据挖掘 数据可视化 进行决策 数据挖掘 数据量大 复杂度高,容忍一定的误差限 追求相关性而非因果性 数据可视化 直观明了 R语言介绍 R是免费的(开源软件、扩展性好)…

每天学点儿Python(6) -- 列表和枚举

列表是Python中内置的可变序列,类使用C/C中的数组,使用 [ ] 定义列表,列表中的元素与元素之间用英文逗号( , )分隔, 但是Python中列表可以存储任意类型的数据,且可以混存(即类型可以…

Socks5代理IP使用教程

当我们在互联网上浏览网页、下载文件或者进行在线活动时,隐私和安全问题常常被提及。在这样的环境下,一个有效的解决方案是使用Sock5IP。本教程将向您介绍Sock5IP的使用方法,帮助您保护个人隐私并提升网络安全。 一、什么是Sock5IP&#xff1…

220 基于matlab的考虑直齿轮热弹耦合的动力学分析

基于matlab的考虑直齿轮热弹耦合的动力学分析,输入主动轮、从动轮各类参数,考虑润滑油温度、润滑油粘度系数等参数,输出接触压力、接触点速度、摩擦系数、对流传热系数等结果。程序已调通,可直接运行。 220直齿轮热弹耦合 接触压力…

医院手术麻醉信息管理系统源码 对接院内HIS、LIS、PACS

目录 ​移动手术工作站 主要解决的问题 主要硬件设备的对接 技术架构 手麻系统功能 手术进程 手术排班 手术记录 术前访视与评估 术中麻醉记录 麻醉总结 术后访视 模版配置 自动评分 文书模板 手麻系统的功能涵盖了麻醉临床业务管理、麻醉运营业务管理以及手术进…

三次 Bspline(B样条曲线) NURBS曲线的绘制 matlab

先来了解几个概念: 1.1 节点向量: B-Spline需要定义曲线的节点向量U,它可以对应到Bezier曲线的参数u。 其元素个数 (m1) 和曲线阶数 k 、控制点个数n满足:m1k1n1 如果U的每段的距离是相等,那么这个B-Spline就被称为均…

亚马逊云的账单申诉

亚马逊云科技申诉通常涉及几个步骤,目的是解决账单错误或申请费用调整。以下是一个基本的指南,可以帮助你开始处理账单问题: 1. 审核账单 在开始申诉之前,首先登录到亚马逊云科技管理控制台。 导航到“账单仪表板”以查看当前的…

模型训练-保存训练数据

1.目的 找到一个可运行的代码,可以每个epoch打印训练数据,但是不会保存。因为在改进模型需要这些训练数据进行对比,所以需要将每个epoch的训练数据保存下来,写到一个文件中。 2.解决方案 直接问ChatGPT,提示词如下&…

AtCoder ABC248 A-D题解

比赛链接:ABC348 Problem A: 签到。 #include <bits/stdc.h> using namespace std; int main(){int N;cin>>N;for(int i1;i<N;i){if(i%30)cout<<x<<endl;elsecout<<o<<endl;}return 0; } Problem B: 枚举即可。 #include <bit…

51蓝桥杯之DS18B20

DS18B20 基础知识 代码流程实现 将官方提供例程文件添加到工程中 添加onewire.c文件到keil4里面 一些代码补充知识 代码 #include "reg52.h" #include "onewire.h" #include "absacc.h" unsigned char num[10]{0xc0,0xf9,0xa4,0xb0,0x99,…

【域适应】基于深度域适应MMD损失的典型四分类任务实现

关于 MMD &#xff08;maximum mean discrepancy&#xff09;是用来衡量两组数据分布之间相似度的度量。一般地&#xff0c;如果两组数据分布相似&#xff0c;那么MMD 损失就相对较小&#xff0c;说明两组数据/特征处于相似的特征空间中。基于这个想法&#xff0c;对于源域和目…

24/04/11总结

IO流(First edition): IO流&#xff1a;用于读入写出文件中的数据 流的方向&#xff08;输入指拿出来,输出指写进去) 输入流:读取 输出流:写出 操作文件类型 字节流:所有类型文件 字符流:纯文本 字节流: InputStream的子类:FileInputStream:操作本地文件的字节输入流 OutputSt…

工作流引擎常见API(以camunda为例)

在Camunda中&#xff0c;API的继承关系主要体现在各个服务接口之间。以下是Camunda中一些常见服务接口的继承关系&#xff1a; ProcessEngineServices 接口&#xff1a; RepositoryService&#xff1a; 负责管理流程定义和部署。RuntimeService&#xff1a; 负责管理流程实例的…

2023年通用人工智能AGI等级保护白皮书

今天分享的是人工智能专题系列深度研究报告&#xff1a;《人工智能专题&#xff1a;2023年通用人工智能AGI等级保护白皮书》。 通用人工智能发展现状 本章主要介绍通用人工智能的基本情况&#xff0c;包括其发展历史、现状以及组成架构等内容。本文还将通过从技术角度出发来分…

PTA 应急救援站选址(floyd+打印路径)

大学城虎溪社区有很多居民小区&#xff0c;居民小区道路图是连通的。现要在该社区新建一个应急救援站&#xff0c;且该应急救援站要和某个小区建在一起。为了使应急救援最快速&#xff0c;经各部门商量决定&#xff1a;应急救援站建好后&#xff0c;离应急救援站最远的小区到应…

大话设计模式之命令模式

命令模式是一种行为型设计模式&#xff0c;它将请求或操作封装成一个对象&#xff0c;从而允许客户端参数化操作。这意味着客户端将一个请求封装为一个对象&#xff0c;这样可以将请求的参数化、队列化和记录日志&#xff0c;以及支持可撤销的操作。 命令模式主要由以下几个角…

kaggle 泰坦尼克号1(根据男女性存活率)

kaggle竞赛 泰坦尼克号 流程 下载kaggle数据集导入所要使用的包引入kaggle的数据集csv文件查看数据集的大小和长度去除冗余数据建立特征工程导出结果csv文件 1.下载kaggle数据集 2.导入所要使用的包 import pandas as pd import numpy as np import matplotlib.pyplot as …

leetcode328.奇偶链表

1. 题目描述 在线练习 2. 解题思路 这道题&#xff0c;官方给的是中等难度。其实是一道基础题&#xff0c;大家应该都可以写得出来。 题目中给的示例可以清楚的看到&#xff0c;合并前后的奇偶链的各自包含的节点的顺序是不变的&#xff0c;我们基本可以确定使用尾插法来合并…

Ansys Mechanical | 软件介绍:业界一流的有限元求解器

Ansys Mechanical 有限元分析软件 Ansys Mechanical 是业界一流的有限元求解器&#xff0c;具有结构、热学、声学、瞬态和非线性功能&#xff0c;可帮助改进建模。 ​ 软件概览 Ansys Mechanical 创建了一个使用有限元仿真分析软件&#xff08;FEA&#xff09;进行结构分析…

猝不及防 CCF-B ICPP 2024投稿延期至4月22日提交摘要 机会来了别错过

会议之眼 快讯 第53届ICPP&#xff08;International Conference on Parallel Processing&#xff09;即国际并行处理会议将于 2024年 8月12日-15日在瑞典哥特兰岛举行&#xff01;ICPP是世界上最古老的连续举办的并行计算计算机科学会议之一。它是学术界、工业界和政府的研究…