• 简单使用BurpSuite及请求包、响应包的格式和含义


    一、HTTP协议基础

    HTTP:HyperText Transfer Protocol,超文本传输协议

    1.协议特点:

    • 简单快速,请求方式get post head等8中请求方式
    • 无连接(一次请求就断开)无状态(没有记忆功能,不会记录任何信息)

    2.支持的模式:B/S、C/S(websocket进行通信)

    二、HTTP的请求包

    1.请求包格式:request=请求行(请求方式  URL  协议/版本)+请求头(形势都为ket:value)+空行+请求数据(若此处为空,请求包的请求方式为get,数据存放在URL中,若有数据,则说明该请求方式为post)

    2.请求方式:

    • http1.0版本: GET   POST  HEAD
    • http1.1版本: GET  POST  HEAD  OPTIONS  DELETE  TRACE  CONNECT  PUT  PATCH
    方法 描述
    GET 请求指定的页面信息,并返回实体主体
    POST

    向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。

    数据被包含在请求体中。POST 请求可能会导致新的资源的建立和或已有资源的修改

    HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
    OPTIONS 允许客户端查看服务器的性能
    DELETE 请求服务器删除指定的页面
    TRACE 回显服务器收到的请求,主要用于测试或诊断
    CONNECT  HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器
    PUT 从客户端向服务器传送的数据取代指定的文档的内容
    PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新

    (表格来源:https://www.runoob.com/http/http-methods.html,感谢!)

    • GET和POST请求方式的比较:

        相同点:

      1. 都可以创建数组array,数组包含键值对(key=value),其中的键为表单控件的名称,值为用户输入的数据
      2. 分别被视为$_GET和$_POST,是超全局变量

        不同点:

      1. GET型方式:将用户发送的数据拼接到URL中,并且发送的数据量较小,不安全
      2. POST型方式:参数放在请求包中的请求数据中,查看必须使用工具查看,发送的数据量较大,安全性较高

    三、HTTP的响应包

    响应包:用户发送的请求包达到服务器后,要去处理该请求,把处理之后的结果发送给用户浏览器,我们将该结果称为响应包,用response表示

    1.响应包格式:response=状态行(协议/版本  状态码)+消息报头+空行+响应正文(也叫做响应内容,是由HTML+CSS+JS组成的响应正文)

    2.状态码

    • 状态码由三位数字组成,第一位数字表示响应的类型,共有5种类型:

        1xx:表示服务器已经接受到请求并且需要继续处理

        2xx:表示服务器已经成功接受到请求,并处理了该请求

        3xx:表示重定向,URL要跳转到其他页面去请求

        4xx:表示用户请求由问题

        5xx:表示服务器内部出错

    3.常见状态码:

    • 200  OK

        表示请求被服务器正常处理 

    • 302  Found 

        临时重定向,表示请求的资源临时搬到了其他位置 

    • 304  Not Modified 

        表示客户端发送附带条件的请求时,条件不满足 

    • 400  Bad Request 

        表示请求报文存在语法错误或参数错误,服务器不理解 

    • 403  Forbidden 

        表示对请求资源的访问被服务器拒绝了 

    • 404  Not Found  

        表示服务器找不到你请求的资源

    • 500 Internal Server Error  

        表示服务器执行请求的时候出错了 

    四、URL

    URL:uniform resource locator,统一资源定位系统,在网络中用来表示某处的资源

    • URL格式:

    http(协议)://www.baidu.com(域名):8080(端口)/news(虚拟目录)/index.php(文件名部分)?parameter=deal&id=35(参数)#name(锚部分)

    • parameter=deal&id=35两个参数
    • 参数从?后面开始的,第一个参数和第二个参数之间用&连接

    五、JDK

    JDK:Java的软件开发工具包,方便我们在本地运行Java开发的工具

    1.下载JDK时要复制安装JDK的路径

    2.配置环境变量

    • win7 配置环境变量:

    右击计算机-->属性-->高级系统设置-->高级-->环境变量-->系统变量-->path,双击进入,在变量值中最后添加;加上安装JDK的路径-->确定

    • win10 配置环境变量:

    右击计算机-->属性-->高级系统设置-->高级-->环境变量-->系统变量-->path,双击进入,在最后的空白行中直接输入JDK的安装路径

    验证:在doc命令窗口中输入  java -version  回显下图信息,表示配置环境变量成功

    六、BurpSuite

    BurpSuite:多功能渗透测试工具,渗透测试神器,使用JAVA开发,功能齐全,方便渗透测试人员去测试WEB站点

    • 功能:爬虫、扫描、拦包、重发、爆破、解码和编码、比较等等

    七、使用BP(BurpSuite的简称)拦截数据包

    1.下载JDK,配置环境变量(上面有详细步骤)

    2.下载一个火狐浏览器,并打开,找到foxyproxy,右击,设置代理服务器,设置过程如下图所示

    • 代理服务器:代理网络用户去取得网络信息。形象地说,它是网络信息的中转站,是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记
    • 过程如图所示:

    3.打开BP,点击Proxy --> Options配置,进入一下界面,可以看到BP默认监听8080端口

    • Proxy是BurpSuite最核心的部分,通过拦截,查看和修改所有的请求和响应您的浏览器与目标Web服务器之间传递

    4.点击Intercept截断 --> 关闭拦截状态Intercept is off(默认开启拦截状态)

    • 这里若开启拦截,浏览网页时将请求包拦截,就无法得到服务器的响应,从而浏览不到界面

    5.打开phpStudy,启动Apache2、FTP、MySQL

    6.在phpstudy_pro/www/中,删掉文件info.php,新建index.html

    7.打开火狐浏览器,右键foxyproxy开启代理服务器(或点击foxyproxy,在选择工作模式中修改),狐狸头变蓝,在地址栏中输入127.0.0.1

    8.打开BP,开启拦截状态Intercept is on,等待或者刷新火狐浏览器界面,可以看到如图所示界面

    • 这里可以看到,请求方式为GET

    9.打开BP,关闭拦截状态,打开火狐浏览器,浏览任意网站

    • 关闭BP,抓取其他请求包,但是在浏览网站时会出现以下界面

    • 点击高级,发现下面没有添加例外,换个网站

    • 添加例外后,就能访问了

    10.抓取POST包,就要向指定资源提交表单或者上传文件,在发起请求之前,打开BP,开启拦截状态后,发起请求,BP就可以拦截到POST包

    11.拦截响应包时,要将截断服务器响应的选项勾选,如下图所示

    12.在拦截到POST请求包时,点击Forward发送,就可以查看到响应包

    六、数据头中每个参数的含义

    1.请求头中每个参数的含义

    参数 含义

    Host

    表示请求服务器的IP

    User_Agent

    表示用户本地环境(工具环境)

    Accept

    浏览器可解析的应用环境

    Accept-Language

    浏览器可解析的语言类型

    Accept-Encoding

    浏览器可解析的编码方式

    Referer

    表示请求页面是从哪里来的(当前所处位置)

    Cookie

    表示服务器和浏览器之间的会话状态,

    该会话状态可以表示用户是否登陆过,

    一般都是服务器给配置的,具有时效性。

    cookie失效,就需要用户重新登录,

    只有登录成功之后,浏览器就会保存cookie,

    每次去服务器去请求都会带上cookie,

    并且该cookie是需要在服务器中验证的

    X-Forwarded-For

    表示用户真实的IP

    Content-Type

    内容类型,表示该请求数据的类型

    2.响应头中每个参数的含义:

    参数 含义

    Data

    服务器发出响应的时间

    Server

    服务器的环境(如:fcgid表示Apache版本)

    Content-Length

    返回来数据包的长度

    Connection

    连接状态

    Content-Type

    返回响应数据的类型,告诉浏览器该使用哪种

    方式去解析或打开该响应数据的内容

    Location

    表示要跳转到哪个页面中

    Set-Cookie

    表示服务器给浏览器设置cookie的值 

  • 相关阅读:
    面对对象1
    php数组
    操作字符串,正则表达式
    php运算符and函数
    sql 数学函数and字符串函数and日期函数
    高级查询
    简单查询
    php环境搭建
    第三阶段项目错误记录
    thinkphp获取刚添加数据的主键值
  • 原文地址:https://www.cnblogs.com/zhanghaozsnow/p/11575293.html
Copyright © 2020-2023  润新知