很久没有更新干货了,作为一个目前还在役的 CTF 选手,肯定要讲解一些有意思的赛题啊,一方面是自我的总结,一方面也是给大家一点学习思路,如何去分析一道赛题,我不会去重复的解读一些基础知识,更多的基础知识请参看 ctf-wiki 上面的内容,目前我是主要负责维护 Web 和 Misc 部分内容。本文也会在后续同步更新到 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 。我们使用 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流,可以看到一些版本信息,cookie等等,我们还是发现了一些很有意思的东西。
从 tcp.stream eq 29 到 tcp.stream eq 41 只显示了 where is the flag? 这个字样,难道这是出题人在告诉我们 flag 在这里嘛?
我们追踪到 tcp.stream eq 29 的时候,在 Identification 信息中看到了 flag 中的 lf 字样,我们可以继续追踪下一个流,在 tcp.stream eq 30 的 Identification 信息中看到了 flag 中的 ga 字样,我们发现将两个包中 Identification 信息对应的字段从右至左组合,恰好就是 flag !于是我们可以大胆地猜测, flag 肯定是藏在这里面。
我们直接通过搜索->字符串搜索->分组字节流->搜索关键字 flag 即可,按照同样的方式连接后面相连数据包的 Identification 信息对应的字段,即可找到最终的flag!
下面是搜索的截图:












所以最终的 flag 为:**flag{aha!_you_found_it!}**
原文:https://www.cnblogs.com/ECJTUACM-873284962/p/9884447.html