简单使用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的值 

posted @ 2019-09-23 22:12  z_snow  阅读(12604)  评论(1编辑  收藏  举报