HTTP协议及burp基本使用

六眼飞鱼酱① 提交于 2020-03-02 19:03:32

web应用协议——HTTP

HTTP( 超文本传输协议)

  • 一种通信协议, 1990 年提出, 当前版本为HTTP/1.1
  • 使用超文本标记语言(HTML) 将资源从服务器传送到客户端

超文本传输协议特点

  • 请求、响应模式
  • 简单快速: 客户向服务器请求服务时, 只需传输请求方法和路径
  • 灵活: HTTP 允许传输任意类型的数据对象。正在传输的类型由Content-Type 加以标记
  • 无连接: 一个请求一个连接, 完成后断开
  • 无状态: 协议对于事务处理没有记忆能力, 在服务器不需要先前信息时应答较快

HTTP协议结构

  • HTTP的一个会话, 由Request 和response 组成
  • HTTP 请求(Requests) 包含三个部分

请求行: 方法, URL, 协议/ 版本(Method-URl-Protocol/Version)
消息报头(Request headers)
请求正文( Entity body)

  • HTTP 响应(Responses) 也包含三个部分

状态行: 协议状态代码描叙(ProtocoI-Status code-Description)
消息报头(Response headers)
响应正文( Entity body) 服务器返回的资源的内容

1 HTTP请求方法  POST /servIet/defauIt.JSP HTTP/1.1

HTTP请求方法规定了客户与服务器联系的类型不同
HTTP1.1 支持7 种请求方法:GET, POST, HEAD, OPTiONS, PUT, DELETE, 和TRACE

  • 两种最常用的方法: GET 和POST

GET: 把所有请求的数据都放在URL 当中, 从URL 中可以直接看到, 但最大传输的信息量是2 KB
POST: 把请求的数据放在请求的数据体中, 在URI中不可见, 长度不受限, 常用于提交表单

URI(相对路径)
- /servIet/defauIt.JSP 表示一个URI,URI 指明了一个INTERNET 资源。一个URI通常是相对于服务器的根目录被解释的, 使用符号( / ) 开头。
URL(绝对路径)
- HTTP URL ( URL 是一种特殊类型的URI, 包含了用于查找某个资源的足够的信息)的格式如下:
- http://host[":"port][abs_path]

1.1 HTTP请求头域

请求头域(request header) 包含了一些有用的客户机环境的信息和请求的实体(entity body) 信息。比如, 它可以包含浏览器使用的语言和实体的长度等等。每个请求包头都被CRLF( 回车换行) 序列所分离。

 

一般包含的都是客户机的信息,服务器根据收到的客户机信息返回相应内容。

 

1.2 HTTP请求实体

 

请求实体, 在一个典型的HTTP请求中, 这个实体可以变得更长。
Get 方法去请求实体, 在url 中可见, 最大长度2KB
post 方法请求实体, 长度不限, URL 中不可见, 需要借助协议分折软件(burpsuite)

2 HTTP响应

HTTP 响应状态行

  • 状态行: HTTP-Version Status-Code Reason-Phrase

- HTTP 一Version 表示服务器HTTP 协议的版本;
- Status 一Code 表示服务器发回的响应状态代码
- Reason 一Phrase 表示状态代码的文本描述。

  • 状态代码有三位数字组成, 第一个数字定义了响应的类别, 且有五种可能取值:

1 × × : 指示信息表示请求已接收, 继续处理
2 × × : 成功一表示请求已被,成功接收、理解、接受
3 x x  :   重定向一要完成请求必须进行更进一步的操作
4 × × : 客户端错误一请求有语法错误或请求无法实现
5 × × : 服务器端错误一服务器未能实现合法的请求

http 响应消息报头

  • 响应消息报头允许服务器传递不能放在状态行的附加信息, 这些域主要描述服务器的信息和Request-URI进一步的信息。响应头域包含Age 、Location 、Proxy-Authenticate 、PubIic 、Retry-After 、Server 、Vary 、Warning 、WWW-

Authenticate

 3 Burp Suite抓包实验

目标靶机:win2003 server、IIS

客户端:火狐浏览器,通过安装火狐插件可快速切换代理,方便burp抓包

 

 插件设置如下:

 

 

 burp中 options可以看到设置代理的IP和端口。下图所示:

 

 proxy(代理):主要功能——代理、抓包、干扰、拦截、放行

intercept is on 为拦截状态  其对应的intercept is off 为非拦截状态,设置完代理后打开拦截状态,浏览器发起的请求会被burpsuite所拦截。

forward: 进行请求后被拦截,点击forward可以继续此次请求,如果你点击drop则丢弃此请求数据。继续请求后能够看到返回结果。

 

可以在消息分析选项卡查看这次请求的所有内容

  1.  Raw 这个视图主要显示web请求的raw格式,包含请求地址, http协议版本, 主机头, 浏览器信息,accept可接受的内容类型,字符集,编码方式,cookies等,  可以手动修改这些内容,然后在点击forward进行渗透测试
  2.  params 这个视图主要是显示客户端请求的参数信息,get或者post的参数,cookies参数,也可以修改
  3. headers是头部信息和Raw其实差不多,展示更直观
  4. Hex 这个试图显示Raw的二进制内容

Burp Proxy的拦截功能

主要由Intercept(拦截)选项卡中的Forward、Drop、Interception is on/off、Action、Comment 以及Highlight构成,它们的功能分别是:

  • Forward的功能是当你查看过消息或者重新编辑过消息之后,点击此按钮,将发送消息至服务器端。
  • Drop的功能是你想丢失当前拦截的消息,不再forward到服务器端。
  • Interception is on表示拦截功能打开,拦截所有通过Burp Proxy的请求数据;Interception is off表示拦截功能关闭,不再拦截通过Burp Proxy的所有请求数据。
  • Action的功能是除了将当前请求的消息传递到Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer组件外,还可以做一些请求消息的修改,如改变GET或者POST请求方式、改变请求body的编码,同时也可以改变请求消息的拦截设置,如不再拦截此主机的消息、不再拦截此IP地址的消息、不再拦截此种文件类型的消息、不再拦截此目录的消息,也可以指定针对此消息拦截它的服务器端返回消息。

burp suite使用教程参考:https://blog.csdn.net/weixin_38079422/article/details/80729158

4 抓包结果

我们可以看到HTTP请求为get方法,host,客户端,cookie等信息。HTTP Header中Accept-Encoding 是浏览器发给服务器,声明浏览器支持的编码类型

HTTP响应状态码200,服务器版本信息、响应的HTTP内容类型、内容长度

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!