今天学习的题目是流量分析题,特点是将数据信息进行压缩后再进行传输。
题目:找到传输的秘密
用wireshark打开流量包以后发现有很多协议和数据包,这里看到有http的,并且还有404和200的响应包,所以就跟踪一下这个响应200的数据包,发现如下信息:
在请求中有GET /?c=print_r(gzcompress(file_get_contents(base64_decode(%22ZmxhZy50eHQ%22))));这样一串代码,我先解码“ZmxhZy50eHQ”,发现是flag.txt,那就一定是从这里入手,在响应的数据中截取十六进制,得到如下内容
用binwalk进行分析后发现是一个zlib的压缩,想我好长时间想要解这个压缩都没有成功,后来回过头来看这个请求php代码发现这里有一个gzcompress()函数,查看了一下帮助
在帮助文档中有一个是函数应该是解压函数(由于我php还是不很熟悉,所以这里就照着上面的请求字符串编写)
代码如下:
<?php
$a = file_get_contents('flag.txt');
echo gzuncompress($a);
?>
总结:
在流量分析题中,有时流量包中可以用binwalk就可以提取出文件来,但有时文件是包含在流量的十六进制中,要用对流量包进行分析后才可以提取出文件来。zlib解压文件它是需要特定的解压函数才可以进行解压的,所以我们需要对流量包进行仔细分析才能很快的找到flag。