zoukankan      html  css  js  c++  java
  • 第一章 基础篇:课时2:HTTP请求与响应

    第 3 章 Web 应用程序技术

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

    3.1 HTTP
    HTTP(HyperText Transfer Protocol,超文本传输协议)是访问万维网使用的核心通信协议,也是今天所有 Web 应用程序使用的通信协议。最初,HTTP 只是一个为获取基于文本的静态资源而开发的简单协议,后来人们以各种形式扩展和利用它.使其能够支持如今常见的复杂分布式应用程序。
    HTTP 使用一种荃于消息的模型:客户端送出一条请求消息,而后由服务器返回一条响应消息。该协议墓本上不需要连接,虽然 HTTP 使用有状态的 TCP 协议作为它的传输机制,但每次请求与响应交换都自动完成,并且可能使用不同的 TCP 连接。

    3.1.1 HTTP 请求
    所有 HTTP 消息(请求与响应)中都包含一个或几个单行显示的消息头(header),然后是一个强制空白行,最后是消息主体(可选)。以下是一个典型的 HTTP 请求:
    GET /auth/488/YourDetails.ashx--->uid=129 HTTP/l.1
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Referer: https://mdsec.net/auth/488/Home.ashx
    Accept-Language: zh-cn,zh;q=0.5
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WDW64;
    Trident/4.0; SLCC2;. NET CLR 2.0.50727;. NET CLR 3.5.30729; .NET CLR
    3.0.30729; .NET4.OC; InfoPath.3; .NET4.OE; FDM;。 NET CLR 1.1.4322)
    Accept-Encoding: gzip, deflate
    Host: mdsec.net
    Connection: Keep-Alive
    Cookie: SessionId=5870C7lF3FD4968935CDB6682E545476

    每个 HTTP 请求的第一行都由 3 个以空格间隔的项目组成。
    ---> GET:一个说明 HTTP 方法的动词。最常用的方法为 GET,它的主要作用是从 Web 服务器获取一个资派。GET 请求并没有消息主体,因此在消息头后的空白行中没有其他数据。所请求的 URL,该 URL 通常由所请求的资源名称,以及一个包含客户端向该资源提交的参数的可选查询字符串组成。在该 URL 中,查询字符串以--->字符标识,上面的示例中有一个名为 uid、值为 129 的参数。
    使用的 HTTP 版本。因特网上常用的 HTTP 版本为 1.0 和 1.1,多数浏览器默认使用 1.1 版本。这
    两个版本的规范之间存在一些差异;然而,当攻击 Web 应用程序时,渗透测试员可能遇到的唯一
    差异是 1.1 版本必须使用 Host 请求头。

    ---> Accept: 浏 览 器 支 持 的 MIME 类 型 分 别 是 text/html 、 application/xhtml+xml 、application/xml 和 */*,优先顺序是它们从左到右的排列顺序。
    ---> 详解:
    Accept 表示浏览器支持的 MIME 类型;
    MIME 的英文全称是 Multipurpose Internet Mail Extensions(多功能 Internet 邮件扩充服
    务),它是一种多用途网际邮件扩充协议,在 1992 年最早应用于电子邮件系统,但后来也应用到浏
    览器。
    text/html,application/xhtml+xml,application/xml 都是 MIME 类型,也可以称为媒体类型和内容类型,斜杠前面的是 type(类型),斜杠后面的是 subtype(子类型);type 指定大的范围,subtype 是 type 中范围更明确的类型,即大类中的小类。
    Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
    text/html 表示 html 文档;
    Application:用于传输应用程序数据或者二进制数据;application/xhtml+xml 表示 xhtml 文档;application/xml 表示 xml 文档。

    --->Referer 消息头用于表示发出请求的原始 URL(例如,因为用户单击页面上的一个链接)。请注意,在最初的 HTTP 规范中,这个消息头存在拼写错误,并且这个错误一直保留了下来。

    --->Accept-Language 浏览器支持的语言分别是中文和简体中文,优先支持简体中文。
    详解:
    Accept-Language 表示浏览器所支持的语言类型;zh-cn 表示简体中文;zh 表示中文;
    q 是权重系数,范围 0 =< q <= 1,q 值越大,请求越倾向于获得其“;”之前的类型表示的内容,若没有指定 q 值,则默认为 1,若被赋值为 0,则用于提醒服务器哪些是浏览器不接受的内容类型。

    ---> User-Agent 消息头提供与浏览器或其他生成请求的客户端软件有关的信息。请注意,由于历史原因,大多数浏览器中都包含 Mozilla 前缀。这是因为最初占支配地位的 Netscape 浏览器使用了 User-Agent 字符串,而其他浏览器也希望让 Web 站点相信它们与这种标准兼容。与计算领域
    历史上的许多怪异现象一样,这种现象变得很普遍,即使当前版本的 Internet Explorer 也保留了这一做法,示例的请求即由 Internet Explorer 提出。

    ---> Host 消息头用于指定出现在被访问的完整 URL 中的主机名称。如果几个 Web 站点以相同的一台
    服务器为主机.就需要使用 Host 消息头.因为请求第一行中的 URL 内通常并不包含主机名称。

    ---> Accept-Encoding 浏览器支持的压缩编码是 gzip 和 deflate

    ---> Cookie 消息头用于提交服务器向客户端发布的其他参数(请参阅本章后续内容了解更多详情)。

    ---> Connection 表示持久的客户端与服务连接。

    奶奶问孙子:4+1等于几 孙子说:等于6-1。 奶奶说:你明明知道答案,为什么不说? 孙子说:年轻人不讲5的……..
  • 相关阅读:
    linux内核中如何访问寄存器?
    uboot加载itb文件后提示"ERROR: new format image overwritten"如何处理?
    如何单独编译Linux内核源码中的驱动为可加载模块?
    openwrt如何打开linux内核的CONFIG_DEVMEM选项?
    openwrt的shell下如何访问寄存器的内容?
    linux系统错误码大全
    第 3 章 文本元素
    第 2 章 基本格式
    第 1 章 HTML5 概述
    第 20 章 项目实战--案例和关于[7]
  • 原文地址:https://www.cnblogs.com/jasy/p/12690540.html
Copyright © 2011-2022 走看看