Wireshark数据抓包分析之HTTP协议

发布于:2024-07-01 ⋅ 阅读:(11) ⋅ 点赞:(0)

一、实验基础知识

什么是HTTP?

HTTP(HyperText Transfer Protocol,超文本传输协议)是Web系统最核心的内容,它是Web服务器和客户端直接进行数据传输的规则。Web服务器就是平时所说的网站,是信息内容的发布者。最常见的客户端就是浏览器,是信息内容的接受者。

HTTP的特点:

支持客户/服务器模式,支持基本认证和安全认证

简单快速;客户端向服务器请求服务时,只需传送请求方法和路径。

灵活和无状态

HTTP请求方法:

HTTP/1.1协议中共定义了8种动作(方法)来表明Request-URI指定的资源的不同操作方式。

(1)OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向Web服务器发送"*"的请求来测试服务器的功能性。

(2)HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

(3)GET:向特定的资源发出请求。注意:get方法不应当被用于产生“副作用”的操作中。例如在Web APP中,其中一个原因是GET可能会被网站蜘蛛等随意访问。

(4)POST:向指定资源提交数据进行处理请求(比如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改。

(5)PUT:向指定资源位置上传其最新内容。

(6)DELETE:请求服务器删除Request-URI所标识的资源。

(7)TRACE:回显服务器收到的请求,主要用于测试或者诊断。

(8)CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

在大部分情况下,只会用到GET和HEAD方法,并且这些方法是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405,当服务器不认 识或不支持对应的请求方法的时候,应当返回状态行501。

持久性连接与非持久性连接?

浏览器与web服务器建立TCP连接后,双方就可以通过发送请求信息和应答信息进行数据传输。在HTTP协议中,规定TCP链接既可以是持久的,也可以是非持久的。具体采用哪种链接方式,可以由通用头域中的Connection指定。在HTTP/1.0版本中,默认使用的是非持久性连接,在HTTP/1.1版本中,默认使用的是持久性连接。

二、实验环境搭建

服务器IP地址:10.1.1.33

攻击者IP地址:10.1.1.42

通过HFS软件进行抓取和分析HTTP相关的数据

操作步骤

配置HFS软件获取相关的GET数据和POST数据

配置HFS获取到GET和POST数据包即可,点击左上角的端口,输入端口8080

在虚拟文件系统区域,右键,选择“从磁盘添加目录”,选择一个真实存在的目录(此处注意务必是真实存在的),弹出的选择目录类型中选择”真实目录”,此处我们用桌面的解压缩目录

右键目录,点击设置”用户名及密码”,在弹出的对话框中输入用户名和密码(demo/demo),点击确定

在右键目录,点击”属性”,选择”上传”sheet页,选中任何人。点击确定

获取HTTP的GET数据和POST数据

攻击者机器上打开wireshark进行抓包,输入过滤条件IP地址:ip.addr == 10.1.1.33 ,在服务器端输入HFS提示的网址看到对应的详细信息页面。获取到了HTTP的GET方法。Wireshark抓取的数据包保存为HTTP-Get。

登录输入用户名和密码demo等待服务器响应双击页面中的文件夹,重启wireshark进行抓包;在HFS中的进行文件的上传(使用桌面的:http-post.txt),通过wireshark进行抓包获得并进行保存“HTTP-Post”

分析HTTP数据包

以刚开始保存的"HTTP-Get"进行分析HTTP

点开其中的一个数据包

对帧数进行分析在HTTP之前,TCP重组片段,片段共有2270个字节,由于超过了TCP数据包的最大数据分段(MSS),所以将数据在TCP层进行了分段。从下面的信息,可以看到分断后的数据包及包大小,如#2767(247),其中2767表示帧号,大小为247个字节。

分析HTTP请求包

以刚开始保存的"HTTP-Post"进行分析HTTP,输入需要过滤的条件:ip.addr ==10.1.1.33

通过HTTP看到以下的内容

类型的Multipart/form-data是上传文件的一种方式。Multipart/form-data其实就是浏览器用表单上传文件的方式。最常见的情境是:在写邮件时,向邮件后添加附件,附件通常使用表单添加,也就是用multipart/form-data格式上传到服务器。

首先看wireshark中字段与Multipart/form-data的对应关系: MIME Multipart Media Encapsulation:代表整个Multipart/form-data上传文件中的数据。

Encapsulated multipart part:代表表单中不同部分的数据。

Boundary:用来隔开表单中不同部分的数据。


网站公告

今日签到

点亮在社区的每一天
去签到