02-HTTP协议要点以及报文分析

1. HTTP协议简要

只需要传送请求方法和请求路径
无状态
明文传输漏洞 使用加强版的HTTP协议:HTTPS;HTTPS协议也会有“心脏滴血”漏洞

1.1 URL

统一资源定位符,用来告诉web容器,浏览器所请求资源的路径

http://192.168.6.134/cms/show.php?id=33

URL编码:URL中出现的一些字符例如#name会被识别为锚点,所有使用URL编码就可避免。

#%23
空格%20

注:空格也可以用“+”代替

1.2 报文分析工具

F12,浏览器自带查询
wireshark,可以抓取每层数据包

1.3 代理模式

工具:Burp Suite ,作为代理抓取HTTP数据包再进行分析
正向代理:浏览器已知的代理,需要进行配置
反向代理:对客户机浏览器是透明的,例如负载均衡

2. HTTP报文分析

2.1 请求报文

GET /cms/show.php?id=33 HTTP/1.1  
Host: 192.168.6.134
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://192.168.6.134/cms/
Connection: close
Cookie: PHPSESSID=987cdc6d905402e0f8cea8b33a86eedb
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
2.1.1 请求行
GET
/cms/show.php?id=33HTTP/1.1
请求方法文件路径http版本
2.1.2 请求正文字段
字段含义
HOST用于指定被访问服务器的ip地址和端口号
User-Agent浏览器指纹,客户端的浏览器信息
Accept告诉服务器能够发送的媒体类型
Accept-Language告诉服务器能够发送哪些语言
Accept-Encoding告诉服务器能够发送哪些编码语言
Referer包含一个URL,代表当前URL的上一个URL
Cookie记录请求者的身份认证信息
Accept-Charset用于指定浏览器接受的字符集
Content-type用于向接收方指示实体的介质leix
Content-Length用于指明实体正文的长度,
Last-Modified用于指示资源的最后修改时间
2.1.3 请求方法
请求方法作用
GET通常用于请求服务器的某个资源
POST通常用于提交表单或文件上传
HEAD类似于GET,但在服务器响应中只返回首部
PUT向服务器中写入文档(危险方法)
DELETE请求服务器删除指定资源(危险方法)
TRACE回显浏览器的请求
OPTIONS可以用来测试服务器所支持的方法
2.1.4 实验一

题目要求:利用telnet 模拟浏览器发送HTTP请求,测试多种请求方法

1)GET方法

请求服务器发送的某个资源

2)HEAD方法

服务器响应中,只返回首部

3)PUT方法

向服务器写入文档
出现405错误:PUT方法不被允许

4)DELETE方法

请求服务器删除指定资源
如图:出现405错误,DELETE方法不被允许

5)TRACE方法

回显浏览器的请求

2.2 响应报文

HTTP/1.1 200 OK
Date: Wed, 22 Jul 2020 16:21:09 GMT
Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.2.17
X-Powered-By: PHP/5.2.17
Content-Length: 5263
Connection: close
Content-Type: text/html; charset=utf-8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>文章管理系统</title>
2.2.1 状态行
HTTP/1.1200OK
协议/版本状态码描述短语
2.2.2 状态码
状态码类型
1XX信息行状态码
2XX成功状态码
3XX重定向状态码
4XX客户端错误状态码
5XX服务器错误状态码
2.2.3 响应报头
字段
含义
Date时间和日期
Serverweb服务器指纹
Last-Modified用于指示资源的最后修改时间
Content-type响应正文的类型
Content-Length响应正文的长度
Set-Cookie服务器向浏览器写入cookie信息
Location重定向目标页面
Refresh服务器通过Refresh告诉浏览器定时刷新浏览器
2.2.4 实验二

题目要求:利用Burp 分析cms 网站后台登录过程

用户提交用户名和密码表单信息,burp抓取

请求报文

响应报文

1)用户输入正确密码时,状态码为302,重定向到index.php

2)用户输入错误密码时,状态码200,正确访问页面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值