記一道流量包引發的思考


很久沒有更新干貨了,作為一個目前還在役的 CTF 選手,肯定要講解一些有意思的賽題啊,一方面是自我的總結,一方面也是給大家一點學習思路,如何去分析一道賽題,我不會去重復的解讀一些基礎知識,更多的基礎知識請參看 ctf-wiki 上面的內容,目前我是主要負責維護 WebMisc 部分內容。本文也會在后續同步更新到 ctf-wiki 上,當然也歡迎大家一起來 Contribute

ctf-wiki 地址:https://ctf-wiki.github.io/ctf-wiki/

本文給大家帶來的賽題是來自百度杯的一道流量包分析的賽題。

賽題地址為:https://static2.ichunqiu.com/icq/resources/fileupload/CTF/BSRC/2017/BSRC3-1/findtheflag.cap

首先我們拿到這樣一道流量包的題目,題目名稱為 find the flag 。這里面給了很多提示信息,要我們去找到 flag

第一步,搜索 flag 字樣

我們先去搜索看看流量包里面有沒有 flag 。我們使用 strings 命令去找一下流量包, Windows 的朋友可以用 notepad++ 的搜索功能去尋找。

搜索命令如下:

strings findtheflag.cap | grep flag

搜索結果如下:

我們發現搜出了一大堆的東西,我們通過管道去過濾出 flag 信息,似乎沒有發現我們所需要找的答案。

第二步,流量包修復

我們用 wireshark 打開這個流量包

我們發現這個流量包出現了異常現象,我們可以修復一下這個流量包。

這里我們用到一個在線工具:http://f00l.de/hacking/pcapfix.php

這個工具可以幫助我們快速地將其流量包修復為 pcap 包。

我們對其進行在線修復。

修復完畢后點擊 Get your repaired PCAP-file here. 即可下載流量包,然后我們用 wireshark 打開。

既然還是要找flag,我們可以先看看這個流量包。

第三步,追蹤TCP流

我們追蹤一下TCP流,看看有沒有什么突破?

我們通過追蹤TCP流,可以看到一些版本信息,cookie等等,我們還是發現了一些很有意思的東西。

tcp.stream eq 29tcp.stream eq 41 只顯示了 where is the flag? 這個字樣,難道這是出題人在告訴我們 flag 在這里嘛?

第四步,查找分組字節流

我們追蹤到 tcp.stream eq 29 的時候,在 Identification 信息中看到了 flag 中的 lf 字樣,我們可以繼續追蹤下一個流,在 tcp.stream eq 30Identification 信息中看到了 flag 中的 ga 字樣,我們發現將兩個包中 Identification 信息對應的字段從右至左組合,恰好就是 flag !於是我們可以大膽地猜測, flag 肯定是藏在這里面。

我們直接通過搜索->字符串搜索->分組字節流->搜索關鍵字 flag 即可,按照同樣的方式連接后面相連數據包的 Identification 信息對應的字段,即可找到最終的flag!

下面是搜索的截圖:

所以最終的 flag 為:flag{aha!_you_found_it!}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM