Misc取证分析--gzcompress压缩流量包

MISC–gzcompress压缩流量包

题目: 提示PHP的gzcompress压缩算法,提供一个可下载数据包。

初步思路: 数据提取可用文件,利用PHP的gzuncompress解压缩。

title

1、从数据中提取可用文件

wireshark

①过滤数据包

一大堆混乱的数据包,通过使用过滤器过滤掉没价值的。因为是题目提示了PHP,所以可以先尝试一下过滤出HTTP协议。

wireshark1

可以明显的看出大量的HEAD方法。[HEAD: 用来获取请求实体的信息而不需要传输实体主体。个人见解: 用来判断服务器是否存在请求的文件]

初步判断是在进行扫描目录的操作。

拉到最后发现两个200回显,说明请求的文件存在。

wireshark2

②文件提取

wireshark3

可以看到文件名中有base64_decode()。所以先将里面的内容base64解码。这使用python的base64库解码。

base64

需要注意的是,输入的字符串必须符合base64的padding规则(当原数据长度不是3的整倍数时,在结果后面加‘=’。)

2、gzuncompress解码

①使用notepad++打开,发现一大堆的乱码。其实是压缩后的字符串。

notepad

②解压缩需要先将乱码转为base64编码。

base641

这里使用python的文件打开配合base64库。直接将乱码进行base64编码得到的值是错的。

这里也可以直接使用Notepad++的base64插件

notepad1

③再利用PHP的gzuncompress函数解压缩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function func_is_base64($str)
{
return $str == base64_encode(base64_decode($str)) ? true:false;
}
function func_gzuncompress($str)
{

if (func_is_base64($str))
{
return gzuncompress(base64_decode($str));
}
return $str;
}

$str_1 = "eJzLyCxJLkmrtjBNMkhMNU60SDQ3sEiyNDJPSjNMNDZISUszTjYzNTGo5QIAGMsMbA==";
$str_2 = func_gzuncompress($str_1);
echo $str_2;
?>

代码出处

使用PHPstudy运行PHP脚本即可得到flag。

phpstudy

本文标题:Misc取证分析--gzcompress压缩流量包

文章作者:Tanker

发布时间:2019年10月26日 - 21:40

最后更新:2019年10月26日 - 22:26

原始链接:https://www5059109.github.io/2019/10/26/Misc取证分析-gzcompress压缩流量包/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%