HTTP协议基础

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

1.协议特点:

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

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

BurpSuite,渗透测试神器,使用Java开发,功能齐全,方便渗透测试人员去测试Web站点
功能:爬虫、扫描、拦包

HTTP协议特点
简单快速,请求方式有get、post、head 等8种
无连接无状态
支持模式有 B/S(浏览器) C/S(通过websocket去通信)
URL,统一资源定位符,在网络中用来标识某处的资源
http(协议)://www.baidu.com(域名):8080(端口)/news(虚拟目录)/index.php
(文件名部分)?parameter=deal&id=35&do=add(三个参数,?开始,用&连接)#name(锚部分)

请求包:request=请求行+请求头+空行+请求数据

请求方式:

http1.0: GET POST HEAD
http1.1:GET POST HEAD OPTIONS PUT DELETE TRACK CONNECT

GET /test.html?name=qwe&passwd=asd&submit=submit HTTP/1.1    请求行 (请求方式+url+协议以及版本)
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://127.0.0.1/test.html?name=qwe&passwd=asd&submit=submit
DNT: 1    上述请求头
Connection: close
Upgrade-Insecure-Requests: 1                                                  
If-Modified-Since: Mon, 23 Sep 2019 01:43:40 GMT
If-None-Match: "116-5932e8c9787e8"
空行
请求数据(GET没有,POST有)

BurpSuite:
爬虫、扫描(dashboard)
拦包(proxy)
重放(repeater)
爆破(intruder)
解码和编码(decoder)
比较(comparer)

打开方式:双击或者在dos里面打开

GET和POST请求方式比较:
相同点:
1、GET和POST都可以创建数组,array,其包含了键值对(key=value),
其中键是表单控件的名称,值是用户输入的数据
2、GET和POST被视为$_GET和$_POST,是超全局变量
不同点
1、GET型方式将用户发送的数据拼接到URL中,发送到数据量较小,不安全
2、POST型方式参数放在请求包中的请求数据中,必须使用工具去查看,
发送的数据量较大,安全性较高

请求包中每个请求头中参数的含义
HOST (表示请求的服务器的IP)
User-Agent(表示用户本地环境)
Accept(浏览器可解析的应用环境)
Accept-Language(浏览器可解析的语言类型)
Accept-Encoding(浏览器可解析的编码方式)
Referer(表示请求页面是从哪里来的********)
Cookie(表示服务器和浏览器之间的会话状态,该会话状态可以表示用户是否
登陆过,一般都是服务器给配置,具有时效性。只要失效,就需要用户重新登陆。
只有登陆成功之后,浏览器就会保存Cookie,每次去服务器请求都会带上cookie,
并且该cookie是需要在服务器中去验证。)
X-forwarded-for(表示用户的真实ID)
Conent-Type (内容类型,表示该请求数据的类型)

Host: www.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://www.baidu.com/
Cookie: BAIDUID=2E9FEFD30D878F71EFFAF2220402EC40:FG=1; BIDUPSID=2E9FEFD30D878F71EFFAF2220402EC40; PSTM=1569129383; delPer=0; BD_HOME=0; H_PS_PSSID=1453_21098_29523_29721_29567_29220
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1

HTTP的相应包
用户发送的请求包到达服务器之后,要去处理该请求,把处理之后的结果发送给
用户的浏览器,我们将该结果称为相应包,response
Response=状态行+消息报头+空行+响应的正文

使用BP拦截相应包
先去设置浏览器中代理,再去设置BP中代理监听器,并勾选Intercept Server Rserponses
再拦截到数据包之后,点击Forward,就能看到相应包

HTTP/1.1 200 OK 状态行
Date: Mon, 23 Sep 2019 03:09:02 GMT 服务器响应时间
Server: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a 服务器环境
Last-Modified: Mon, 23 Sep 2019 01:43:40 GMT
ETag: "116-5932e8c9787e8"
Accept-Ranges: bytes
Content-Length: 278 返回数据包长度
Connection: close 连接状态
Content-Type: text/html 返回响应数据的类型,告诉浏览器该使用哪种方式去解析或者打开该响应数据类型
Location:index.php 表示要跳转的哪的页面
Set-cookie: 表示服务器给浏览器设置的cookie的值

状态码,由三位数字组成,第一位数字表示了响应的类型,共有五种类型
1XX:表示服务器已经接收到请求,并且需要继续处理
2XX:表示服务器已经成功接收请求,并处理了该请求
3XX:表示重定向,URL要跳转到其他页面去请求
4XX:表示用户请求有问题
5XX:表示服务器内部出错
常见状态码:200 302 304 400 403 404 500
200 请求成功
302 临时移动。与301类似。但资源知识临时被移动,客户端应继续使用原有URL
304 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端
通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期后修改的资源
400 客户端请求的语法错误,服务器无法理解
403 服务器理解请求客户端的请求,但是拒绝执行此请求
404 请求的资源(网页等)不存在
500 内部服务器错误

响应头中每个参数的含义:
Date(服务器响应时间)
Server(服务器环境)
Conten-Length(返回数据包长度)
Connection(连接状态)
Conent-Type(返回响应数据的类型,告诉浏览器该用哪一种方式去解析或者打开该响应数据类型)
Location (表示要跳转到那个页面中)
Set-cookie(表示服务器给浏览器设置的cookie的值)

详解BurpSuite软件 请求包 HTTP (9.23 第十天)的更多相关文章

  1. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)

    原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...

  2. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  3. Java axis2.jar包详解及缺少jar包错误分析

    Java  axis2.jar包详解及缺少jar包错误分析 一.最小开发jar集 axis2 开发最小jar包集: activation-1.1.jar axiom-api-1.2.13.jar ax ...

  4. HTTP协议详解之http请求分析

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  5. linux命名详解及其软件安装实例

    始于cd,ls命令 好啦,步入正题,我使用的linux连接工具为xshell,mRemoteNG,对两款工具不做介绍啦,你可以百度一下,实在不会入左上方群. 进入之后,便是上面的界面黑乎乎一片,对于初 ...

  6. DHCP完整过程详解及Wireshark抓包分析

    DHCP,Dynamic Host Configuration Protocol,动态主机配置协议,简单来说就是主机获取IP地址的过程,属于应用层协议. DHCP采用UDP的68(客户端)和67(服务 ...

  7. 07- HTTP协议详解及Fiddler抓包

    HTTP协议简介-超文本传输协议 HTTP协议是请求/响应协议:客户端发送请求到服务器,服务器响应该请求.当前版本为1.1版本. HTTP协议特点 1.简单快速:客户向服务器请求服务时,只需传送请求方 ...

  8. 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  9. UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

随机推荐

  1. boost::timer demo

    #include <iostream> #include <boost/timer.hpp> //timer的头文件 using namespace boost; //打开bo ...

  2. 第一章、ssh安装及远程登入配置

    1.Ubuntu下 确认 SSH Server 是否启动 输入: sudo ps -e | grep ssh. 如果正确启动, 命令行中会显示sshd. 安装服务端 OpenSSH Server 输入 ...

  3. 083、Java数组之方法返回数组

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  4. Matplotlib 多个图形

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...

  5. DevOps - 自动化工具

    章节 DevOps – 为什么 DevOps – 与传统方式区别 DevOps – 优势 DevOps – 不适用 DevOps – 生命周期 DevOps – 与敏捷方法区别 DevOps – 实施 ...

  6. 设备树DTS 学习:Linux DTS文件加载过程

    背景 了解机制有利于对内核有更深的认识. wget https://mirrors.aliyun.com/linux-kernel/v3.x/linux-3.2.61.tar.xz 内核 在drive ...

  7. Windows驱动开发-设备读写方式

    设备读写方式共三种: 方式 Flag 特点 缓冲区方式读写 DO_BUFFERED_IO I/O管理器先创建一个与用户模式数据缓冲区大小相等的系统缓冲区.而你的驱动程序将使用这个系统缓冲区工作.I/O ...

  8. CodeForces - 876D Sorting the Coins

    题意:有n个数的序列,n个数都为0,每次指定某个数变为1,当序列中第i个数为1,第i+1个数为0时,这两个数可交换,将序列从头到尾进行一次交换记为1次,直到某一次从头到尾的交换中没有任何两个数交换.序 ...

  9. 编程题目: 两个队列实现栈(Python)

    感觉两个队列实现栈 比 两个栈实现队列 麻烦 1.栈为空:当两个队列都为空的时候,栈为空 2.入栈操作:当队列2为空的时候,将元素入队到队列1:当队列1位空的时候,将元素入队到队列2: 如果队列1 和 ...

  10. CVE-2019-0708 漏洞分析及相关测试

    在CVE-2019-0708公布后几天就已经尝试过复现该漏洞,但借助当时exp并没能成功复现反弹shell的过程遂放弃,故借助这次漏洞复现报告再来尝试复现该漏洞,因为还在大三学习中,有很多知识还没有掌 ...