WireShark_HTTP
实验步骤
- 环境配置
这个时候用Kali的好处来了!安装系统的时候已经预装过了,开袋即食
1 | wireshark |
在 Wireshark 启动后,看一下主界面顶部的网络接口列表:
如果能看到类似 eth0、wlan0 这样的接口名称,并且前面没有红色的”锁”图标,说明权限正常,可以直接点击开始抓包
如果接口前面有一个红色的”锁”图标,说明当前用户没有抓包权限,需要关闭 Wireshark,然后在终端执行以下命令把自己加入 wireshark 用户组:
1 | sudo usermod -aG wireshark $USER |
接着需要准备一个浏览器,此处鄙人不才选的是Chrome,下载时选择.deb
下载地址
1 | cd 下载 |
关于Chrome清空缓存的方法:
Ctrl+shift+delete
时间范围:选择”时间不限”(All time)
勾选:仅勾选”缓存的图片和文件”(Cached images and files)
点击:”清除数据”(Clear data)
关于wireShark的No.不显示的解决方案:
右键No.的这一栏,选择’列首选项’
选中No.并点击’-‘删除这一行
用’+’新添加,Title填’No.’,Type填’Number’,Fields填’frame.number’
点击确定即可
- 实验一(基本HTTP GET/response)
- 清空Chrome缓存并打开一个空白页(此时保持虚拟机里面只打开了Chrome一个浏览器)
- 重新在终端打开wireShark
- 网卡双击选择eth0(虚拟机桥接模式)
- 然后会看到抓了很多包(Tcp,ssh等)
- 在Chrome网址栏输入’http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html‘
- 在wireShark的过滤器栏中输入http并回车
- 截图结果
- 为了回答1-7题,在wireShark中查看信息并截图
- 点击No.496(GET请求)
- 选择Hpertext Transfer Protocol展开
- 截图(1-3题)
- 点击No.502(200 OK未响应)
- 选择Hpertext Transfer Protocol展开
- 截图(4-7题)
- 实验二(条件GET)
- 停止当前抓包(红色方块)
- 重新抓包(蓝色鲨鱼鳍)
- 清空Chrome缓存并打开一个空白页
- 访问’http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html‘
- 刷新一次浏览器
- 停止抓包
- 过滤器输入http
- 截图
- 查看信息并截图:
- 查看No.375
- 查看No.379
- 查看No.437
- 查看No.441
- 实验三(检索长文档)
- 清空Chrome缓存并打开一个空白页
- 开始抓包
- 访问’http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html‘
- 页面加载结束后停止抓包
- 过滤器:http
- 截图(12-14)
- 重复步骤1-5,过滤器先ip.addr == 128.119.245.12,选择No.92,右键追踪流,选择TCP Stream,截屏
- 实验四(嵌入对象)
- 清空Chrome缓存并打开一个空白页
- 开始抓包
- 访问’http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html‘
- 等待页面完全加载(一个短 HTML 文件和两张图片),停止抓包
- 在过滤器输入http
- 截图(16-17)
- 实验五(HTTP认证)
- 清空Chrome缓存并打开一个空白页
- 开始抓包
- 访问’http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html‘
- 在登录框里输入:
用户名:wireshark-students
密码:network - 登录
- 停止抓包
- 过滤器:http
- 截图(18)
- 查看No.240的Hypertext Transfer Protocol(截图19)
实验题
- HTTP版本(GET部分):
浏览器:HTTP/1.1
服务器:HTTP/1.1 - 浏览器可接受的语言(Accept-Language字段):
zh-CN,zh;q=0.9 优先接受简体中文,中文其次 - IP地址(Internet Protocol,Src本机,Dst服务器):
本机:
服务器: - 状态码(HTTP/1.1 200 OK\r\n):
200 OK - 文件最后修改时间(Last-Modified):
Tue, 28 Oct 2025 05:59:01 GMT - 返回的内容字节数(Content-Length):
128 bytes - 原始数据中未显示的头部:
\r\n、HTTP/1.1 200 OK状态行 - 第一次 GET 请求中是否有 “If-Modified-Since”?
没有 - 第一次响应是否返回了文件内容?如何判断?
返回了文件内容:
状态码是 200 OK(表示成功)
Content-Length: 371(表示返回了 371 字节的数据)
File Data: 371 bytes(确认有文件内容) - 第二次 GET 请求中是否有 “If-Modified-Since”?值是什么?
有,值为Tue, 28 Oct 2025 05:59:01 GMT - 第二次响应的状态码是什么?是否返回了文件内容?解释原因
状态码是304 Not Modified
未返回文件内容:服务器检查了 If-Modified-Since 字段,发现文件自 Tue, 28 Oct 2025 05:59:01 GMT 以来没有被修改过,因此返回 304 Not Modified 告诉浏览器可以使用本地缓存(响应中没有 Content-Length 字段和实体主体) - 浏览器发送了几个 GET 请求?哪个包包含 GET 报文?
4个
No.90包含文档的GET报文 - 哪个包包含状态码和短语?
No.94 - 状态码和短语是什么?
200 OK - 多少个数据包(TCP 段)携带了 HTTP 响应?
2 个 TCP 段
在 Follow TCP Stream 窗口的底部,Wireshark 显示了统计信息:”2客户端分组,3服务器分组,3 turn(s)”,以及:”整个对话(6,316 bytes”
- 浏览器发送了多少个 HTTP GET 请求?发送到了哪些互联网地址?
4个
128.119.245.12(gaia.cs.umass.edu):共3个请求
2.56.99.24(法国的服务器):1个请求 - 浏览器是串行还是并行下载两张图片?
串行:浏览器在收到第一个图片的响应后,才发起第二个图片的请求。从时间戳可以看出两个请求之间有明显的间隔(约0.5秒) - 服务器对第一次 GET 请求的响应(状态码和短语)是什么?
401 Unauthorized (No.180) - 第二次 GET 请求中包含了什么新字段?(Base64编码的用户名和密码)
Authorization: (自己填)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 QingMaxLim-Blog!








