zoukankan      html  css  js  c++  java
  • HTTP协议及burp基本使用

    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内容类型、内容长度

    burp suite想要抓包htts网站,需要安装证书,访问代理127.0.0.1:8080下载证书,并在火狐浏览器中安装。

  • 相关阅读:
    C#来完成二叉树的搜索、遍历、及查找
    给大家推荐个学英语的网站
    我一直在心酸——有感于512大地震
    LINQ基础(一)
    再谈奶牛问题
    【转】程序员的十层楼,你属于哪一层?
    c#实现根据有规律的文件内容解析成实体类
    c#多线程操作界面控件的简单实现
    不要迷恋哥,哥不只是传说(再【转】世界上最牛的程序员)
    c#简单实现提取网页内容
  • 原文地址:https://www.cnblogs.com/52kj/p/12397301.html
Copyright © 2011-2022 走看看