0
点赞
收藏
分享

微信扫一扫

Web安全入门与靶场实战(10)- HTTP请求和响应的数据包结构

HTTP协议的请求与响应报文都是由“首部header”和“主体body”两部分组成的。其中主体部分是请求和响应的数据,首部部分则规定了请求和响应的内容格式。

对于HTTP请求报文,主要由三部分组成:请求行、请求头、请求正文。在请求头和请求正文之间一般会有两个空行进行间隔。

下图是用Burpsuite截获的请求报文。

Web安全入门与靶场实战(10)-  HTTP请求和响应的数据包结构_请求头

HTTP请求报文的第一行即为请求行,这个报文的请求行就是“GET / HTTP/1.1”。

请求行由三部分组成:

  • 第一部分“GET”,表明该请求是采用GET方法;
  • 第二部分“/”,表明请求访问的页面,“/”是指网站根目录,也就是要访问网站的首页。它结合请求头的Host字段可以组成一个完整的请求URL:“www.51cto.com/”
  • 第三部分“HTTP1.1”,表明所使用的HTTP协议版本,目前所使用的都是HTTP1.1版本。

对于这个报文,由于采用的是GET方法,因而没有请求正文。从第二行直至最后一行,都属于是请求头(也被称为消息头),服务端据此获取客户端的信息。我们应当熟知请求头中的内容,这在后面会详细介绍。

请求正文是可选的,它最常出现在POST请求方法中。比如下面拦截到的POST请求报文就包含l完整的三个组成部分。

Web安全入门与靶场实战(10)-  HTTP请求和响应的数据包结构_响应报文_02

HTTP响应报文总体上也是由三部分组成:响应行、响应头、响应正文。下图是响应报文。

Web安全入门与靶场实战(10)-  HTTP请求和响应的数据包结构_Burpsuite_03

HTTP响应的第一行为响应行,其中有HTTP版本(HTTP/1.1)、状态码(200)以及消息“OK”。

第二行至末尾的空白行为响应头,由服务器向客户端发送。

响应头之后是响应正文,是由服务器向客户端发送的HTML数据。

响应报文中的状态码和响应头都比较重要,这个在后面也会详细介绍。

CTF典型例题分析1

下面通过一个典型的CTF例题,来加深对HTTP请求和响应报文的理解。

 BugKu-Web-头等舱

打开页面之后显示“什么也没有”,在做这类Web题目时有一些常用的套路:第一步查看源码,第二步抓包。

查看源码没有任何线索。这个题目的名称就是“头等舱”,所以很明显是在提示去查看HTTP报文的头部,利用Burpsuite拦截数据包之后,在响应报文的头部发现flag。

Web安全入门与靶场实战(10)-  HTTP请求和响应的数据包结构_请求头_04


举报

相关推荐

0 条评论