CTF系列文章
第一篇 CTF之密码学题目-classical && coding
第二篇 CTF之MISC题目-西游记
第三篇 CTF之MISC题目-简单流量
文章目录
- CTF系列文章
- 前言
- 一、题目是什么?
- 二、解题步骤
- 1.下载文件、解压
- 2.使用wireshark
- 3.解压flag.zip
- 总结
前言
这是一道关于网络数据包分析的题目,主要是wireshark工具的使用和发现代码、理解代码。同时要了解Linux 的 Shell脚本。
一、题目是什么?
二、解题步骤
1.下载文件、解压
可以发现是一个流量包数据(.pcapng后缀,可以用wireshark打开),我们用wireshark工具打开。
2.使用wireshark
题目中说“c0oola的服务器好像被黑客传上了后门代码,并窃取了机密文件。”,所以只有通过http协议可以上传表单,我们选择菜单文件>导出对象>HTTP...
,得到:
主要看IP地址、内容类型、流量大小、文件名。文件名中有关shell的,都是可疑报文。我们在通过搜索过滤出Http协议的报文,得到:
在众多的http报文中,我们逐一的查看,发现最后一条报文里面含有flag信息,如下:
我们发现flag是zip包,那么需要了解zip包的文件格式,zip文件的文件头的16进制是:ZIP Archive (zip),文件头:504B0304
。常见的文件头的16进制,可以参考这里
我们接着分析Http报文,在倒数第三条里面,发现了文件头50db0304
:
选中那条记录,右键>复制>值,粘贴到文本编辑器中,比如notepad++,如下:
把504b0304
开头的那段文本,复制,打开010 Editor,选择Edit>Paster From>Paster From Hex Text
,结果如下:
另存为flag.zip
,保存到桌面,然后解压。
3.解压flag.zip
解压发现需要输入密码,但是我们不知道密码,只能从Http报文里分析,从倒数第二条报文中发现了注入的脚本:
选择那条记录,右键>复制>值
,可以粘贴到文本编辑器中,比如notepad++中如下:
从里面的PHP脚本:
$p=base64_decode(substr($_POST["ya7bc128230026"],2));$s=base64_decode(substr($_POST["x77118dbf56718"],2));
可以知道对于表单项,需要截掉前面两个字符,再进行base64解密,我们可以分别得到表单项“ya7bc128230026”和“x77118dbf56718”的内容:
从解码的内容中,我们发现了密码unzip -P P@sSw03d
,即P@sSw03d
为flag.zip文件的解压密码,解压文件后得到flag.txt。打开如下:
最终我们得到了flag:e55f3b4f-b283-45ac-a477-ff1c70226f56
总结
以上就是第三道CTF题目的解题过程和思路,可以发现在解决问题的时候,步步为营,首先要会使用wireshark分析数据包,其次找到关键报文后,要能够发现其中的线索(zip文件),再次要对常见的文件头的16进制要了解,而且还有阅读代码,理解代码的能力,找到脚本中关键点(删除头两个字符之后的base64解密),对关键报文解密获得解压密码。最终可以成功拿到Flag。