记一道流量包引发的思考

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

posted @   Angel_Kitty  阅读(4062)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2017-10-31 CTF---Web入门第三题 这个看起来有点简单!
2017-10-31 队列的存储结构的实现(C/C++实现)
点击右上角即可分享
微信分享提示
哥伦布
14°
14:09发布
哥伦布
14:09发布
14°
大雨
南风
3级
空气质量
相对湿度
93%
今天
中雨
14°/19°
周日
中雨
5°/19°
周一
1°/11°