首页 > 其他分享 >协议分析

协议分析

时间:2024-01-25 17:27:25浏览次数:19  
标签:分析 协议 HTTP 请求 Accept 服务器 浏览器 客户端

HTTP


HTTP工作原理

在用户点击url的连接后,浏览器和web服务器执行以下动作

  1. 浏览器分析超链接中的URL

  2. 浏览器向DNS请求解析URL IP地址

  3. DNS将解析出来的IP地址返回浏览器

  4. 浏览器与服务器建立TCP连接(HTTP默认端口80)

  5. 浏览器请求文档:GET/POST

  6. 服务器给出响应,将所访问的资源发回给浏览器

  7. 释放TCP连接

  8. 浏览器解析显示返回内容

    HTTP状态码如下:

200 OK:请求成功。
201 Created:请求已经被实现,资源被新建。
202 Accepted:服务器已接受请求,但尚未处理。
204 No Content:服务器成功处理了请求,但不需要返回任何实体内容。
206 Partial Content:服务器已经成功处理了部分 GET 请求。
301 Moved Permanently:请求的资源已经被永久移动到新的URI,将来任何对该资源的引用都应使用新的URI。
302 Found:请求的资源临时被移动到新的URI。
304 Not Modified:客户端发送了一个带有条件的请求,服务器告诉客户端,原先缓存的响应还可以继续使用。
400 Bad Request:请求格式错误。
401 Unauthorized:请求需要认证或者认证失败。
403 Forbidden:服务器拒绝请求。
404 Not Found:未找到指定资源。
500 Internal Server Error:服务器发生了不可预期的错误。
502 Bad Gateway:网关或代理服务器从上游服务器接收到无效的响应。

以下是一个GET示例中的请求头字段,以及对应的解释和分析:

makefileCopy code
GET /hello.txt HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.example.com/index.html
Connection: keep-alive
  1. 请求行:GET /hello.txt HTTP/1.1
    • GET: 请求方法,表示客户端希望获取指定资源
    • /hello.txt: 请求的URI,表示请求的资源为/hello.txt
    • HTTP/1.1: 使用的HTTP版本,表示使用的是HTTP 1.1协议
  2. Host字段:Host: www.example.com
    • Host: 请求头字段,指定请求的目标服务器的主机名和端口号
    • www.example.com: 请求的目标服务器主机名
  3. User-Agent字段:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0
    • User-Agent: 请求头字段,指定客户端的用户代理(即浏览器等)
    • Mozilla/5.0: 浏览器的标识,表示使用的是Mozilla浏览器
    • (Windows NT 10.0; Win64; x64; rv:58.0): 操作系统和浏览器版本号
    • Gecko/20100101: 渲染引擎和版本号
  4. Accept字段:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    • Accept: 请求头字段,指定客户端能够接收的MIME类型
    • text/html: 客户端能够接受的HTML类型的文档
    • application/xhtml+xml: 客户端能够接受的XHTML类型的文档
    • application/xml: 客户端能够接受的XML类型的文档
    • q=0.9,*/*;q=0.8: 表示客户端能够接受的其他MIME类型以及它们的优先级,q值越大,优先级越高
  5. Accept-Language字段:Accept-Language: en-US,en;q=0.5
    • Accept-Language: 请求头字段,指定客户端能够接受的自然语言
    • en-US: 客户端首选的语言为英语(美国)
    • en;q=0.5: 客户端次选的语言为英语,但优先级比英语(美国)低
  6. Accept-Encoding字段:Accept-Encoding: gzip, deflate, br
    • Accept-Encoding: 请求头字段,指定客户端能够接

以下是一个POST示例中的请求头字段,以及对应的解释和分析:

makefileCopy code
POST /login HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 21
Connection: close

username=admin&password=123456
  • POST /login HTTP/1.1: 表示使用POST方法请求/login资源,HTTP版本为1.1。
  • Host: example.com: 表示请求的服务器地址。
  • User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0: 表示客户端的类型和版本信息,这里是Mozilla Firefox浏览器的信息。
  • Accept: */*: 表示客户端可以接受任何类型的响应数据。
  • Accept-Language: en-US,en;q=0.5: 表示客户端可以接受的语言类型和优先级,这里是英文和任何语言的一半权重。
  • Accept-Encoding: gzip, deflate: 表示客户端可以接受的压缩编码类型,这里是gzip和deflate。
  • Content-Type: application/x-www-form-urlencoded: 表示请求正文的类型为application/x-www-form-urlencoded,即表单数据。
  • Content-Length: 21: 表示请求正文的长度为21字节。
  • Connection: close: 表示完成请求后立即关闭连接。

请求正文:

  • username=admin&password=123456: 表示POST请求的参数,这里包含用户名和密码,采用application/x-www-form-urlencoded编码方式。

总体来说,POST请求与GET请求最大的区别是,POST请求把请求参数放在请求正文中,而GET请求把请求参数放在URL中。POST请求的请求头和GET请求的请求头相比,多了一个Content-TypeContent-Length字段。其中,Content-Type指定了请求正文的类型,Content-Length指定了请求正文的长度。这些字段可以帮助服务器正确解析请求,获取请求参数,进行相应的处理。

以下是一些WAF绕过技术:

Null Byte Injection(空字节注入):攻击者在上传的文件名中添加空字节(\0),以绕过WAF对文件类型的检测。例如,攻击者将文件名命名为"shell.php\0.jpg",WAF将仅检查.jpg的文件类型而忽略后面的字符。

文件头篡改:攻击者可以篡改文件的文件头,使其在WAF的检测中通过,例如,将一个包含PHP代码的文件的文件头更改为GIF格式的文件头,以绕过WAF的检测。

MIME绕过:攻击者可以通过修改文件的MIME类型,使其伪装成WAF允许的文件类型。例如,将一个包含PHP代码的文件的MIME类型更改为image/jpeg,WAF将不会对其进行检测。

Chunked Encoding:攻击者可以使用Chunked Encoding技术,在不知道文件大小的情况下,将恶意代码分段上传到服务器上。

代理不错的软件surge3,

##surge3的一个轮子,可以将时间增加

#!/usr/binn/env bash
cd $(dirname "$0")
read -sp "Password:" pwd
echo 
echo "${pwd}"| sudo -S date 010110002010
nohup ./Surge\ 3.app/Contents/Macos/surge\ 3 & sleep 30
echo "${pwd}" | sudo -S sntp -sS time.apple.com

标签:分析,协议,HTTP,请求,Accept,服务器,浏览器,客户端
From: https://www.cnblogs.com/Tongyanxi/p/17987673

相关文章

  • 选题要求分析总结
    问题:1、数据分布在不同的部门和系统中,数据采集难度大2、由于数据来源多样,且可能存在数据重复、数据不一致等问题3、缺乏专业的数据分析工具,导致数据分析能力不足,无法充分利用数据为决策提供支持4、缺乏有效的数据可视化工具,导致数据无法直观地展示,从而影响决策效率 功能:1......
  • 源码分析:线程池里新增一个线程的流程是什么
    1、先判断新线程是不是为空,为空就报空指针错误否则就往下运行;2、判断是否小于核心线程数,小于则直接新增线程否则就往下运行;3、尝试新增到工作队列中,添加成功就等待调用否则就往下运行;4、再次尝试新增线程,如果当前线程池的线程数大于线程池容量或最大线程数就触发拒绝策略。......
  • 记一次挖矿木马样本分析
    有一台vps被弱口令上马了翻来翻去找到个二进制文件如下前言搜main函数关键字可以判断是用shc加密shell脚本生成的二进制文件在0000000000400F7E位置函数,找到了加载shell命令的位置shc部分源码/*shc.c*/​/***Thissoftwarecontainsanadhocversionofthe......
  • ICMP 协议
    ICMP(InternetControlMessageProtocol)协议。ICMP是网络层协议之一,它是IP协议的一个补充。主要在网络中传递控制消息和错误消息,以便对网络进行诊断、故障排除和管理,并且通知相关设备发生了网络错误或异常情况。ICMP常见的消息类型EchoRequest(回显请求)/EchoReply(回显应答......
  • GDB调试之Core dump分析(二十五)
    一、核心转储coredump基础 Linuxcoredump:一般称之为核心转储、内核转储,我们统称为转储文件。是某个时刻某个进程的内存信息映射,即包含了生成转储文件时该进程的整个内存信息以及寄存器等信息。转储文件可以是某个进程的,也可以是整个系统的,可以是进程活着的时候生成的,也可以是......
  • Wireshark中的ARP协议包分析
    Wireshark可以跟踪网络协议的通讯过程,本节通过ARP协议,在了解Wireshark使用的基础上,重温ARP协议的通讯过程。ARP(AddressResolutionProtocol)地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回......
  • 2024-1-25HTTP协议 - 请求报文
    目录HTTP协议-请求报文HTTP协议-请求报文HTTP协议:规定了浏览器发送及服务器返回内容的格式请求报文:浏览器按照HTTP协议要求的格式,发送给服务器的内容总结:1.浏览器发送给服务器的内容叫做请求报文2.请求报文的组成3.查看请求报文......
  • PYTHON 用几何布朗运动模型和蒙特卡罗MONTE CARLO随机过程模拟股票价格可视化分析耐克
    原文链接:http://tecdat.cn/?p=27099最近我们被客户要求撰写关于蒙特卡罗的研究报告,包括一些图形和统计输出。金融资产/证券已使用多种技术进行建模。该项目的主要目标是使用几何布朗运动模型和蒙特卡罗模拟来模拟股票价格。该模型基于受乘性噪声影响的随机(与确定性相反)变量该项......
  • R语言多维度视角下白领人群健康体质检测数据关系可视化分析
    随着社会经济的发展和人们生活水平的提高,健康问题越来越受到关注。白领阶层作为社会的重要组成部分,其健康状况对于个人和社会都具有重要意义。然而,由于工作和生活方式的改变,白领阶层的健康问题逐渐凸显,如身体成分异常、动脉硬化等。因此,本文旨在帮助客户通过R语言数据分析和可视化......
  • 六个软件设计与体系结构案例分析
    本文提供一些软件设计与体系结构案例分析参考报告,以精准扶贫管理系统,船舶信息分析平台,铁路票务系统,银行业务与安全系统等实例,进行架构建模分析或者架构演进分析。资源分享链接:百度网盘链接:https://pan.baidu.com/s/1nzlfFrhEoZVCrbGT4N3_0A?pwd=jyn8提取码:jyn81.六个案例分析......