记一道流量包引发的思考

来自:IT老实人(微信号:IThonest),作者:AngelKitty

很久没有更新干货了,作为一个目前还在役的 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!}

推荐↓↓↓
Web开发
上一篇:编写支持SSR的通用组件指南 下一篇:微服务下的网关与容错