今天學(xué)習(xí)的題目是流量分析題,特點是將數(shù)據(jù)信息進行壓縮后再進行傳輸愿卒。
題目:找到傳輸?shù)拿孛?/h2>
用wireshark打開流量包以后發(fā)現(xiàn)有很多協(xié)議和數(shù)據(jù)包跑慕,這里看到有http的羞酗,并且還有404和200的響應(yīng)包,所以就跟蹤一下這個響應(yīng)200的數(shù)據(jù)包无蜂,發(fā)現(xiàn)如下信息:
在請求中有GET /?c=print_r(gzcompress(file_get_contents(base64_decode(%22ZmxhZy50eHQ%22))));這樣一串代碼伺糠,我先解碼“ZmxhZy50eHQ”,發(fā)現(xiàn)是flag.txt斥季,那就一定是從這里入手训桶,在響應(yīng)的數(shù)據(jù)中截取十六進制,得到如下內(nèi)容
用binwalk進行分析后發(fā)現(xiàn)是一個zlib的壓縮酣倾,想我好長時間想要解這個壓縮都沒有成功舵揭,后來回過頭來看這個請求php代碼發(fā)現(xiàn)這里有一個gzcompress()函數(shù),查看了一下幫助
在幫助文檔中有一個是函數(shù)應(yīng)該是解壓函數(shù)(由于我php還是不很熟悉躁锡,所以這里就照著上面的請求字符串編寫)
代碼如下:
<?php
$a = file_get_contents('flag.txt');
echo gzuncompress($a);
?>
總結(jié):
在流量分析題中午绳,有時流量包中可以用binwalk就可以提取出文件來,但有時文件是包含在流量的十六進制中映之,要用對流量包進行分析后才可以提取出文件來拦焚。zlib解壓文件它是需要特定的解壓函數(shù)才可以進行解壓的蜡坊,所以我們需要對流量包進行仔細分析才能很快的找到flag。