大家好,今天还是给大家带来12道Misc题目,这次的难度比之前的题目有所上升,有任何疑问欢迎留言沟通,最后感谢大家观看。
图片隐写,基本上所有的图片隐写就是不同的套路相互组合,做过的题目越多,记住的套路越多,遇到图片隐写类题目卡关时把所用套路试一遍往往就能找到一些下一步的线索,从而通关。
这道题目刚拿到时,就没有什么头绪,题目本身和图片内容没有提示任何信息,想着总不能一上来就被难倒吧,我只能把常见的方法试一遍。binwalk,steghide,strings,exiftool等工具使用后没有什么关键信息,就扔到stegsolve里面看是否有LSB隐写。结果在R/G/B通道设置为0时出现了一个内容以PK开头的文件,而这正是压缩文件的文件标识符。
我们把它以压缩文件的格式导出,选择“Save Bin”,创建一个zip文件。可惜这里还没有结束,下载后提示该文件是损坏的,但是它可以被正确识别为一个压缩文件,说明问题不在文件头而是在内容中。这里为了明确损坏的原因,我打开了010editor,并用该软件打开这个损坏文件。
打开文件,编辑器底部就告警“Unknown ZIP Tag encountered”,表示文件结构是错误的,停止了结构解析。并且黄色高亮区域应该作为压缩文件的结尾出现在了内容中间,这里就说明该文件中是由一个压缩文件和另外一些其它字符组成的。答案可能出现在任意一个部分,也可能分成了两部分。我们先看第一部分的压缩文件,这里把压缩文件结尾标识后的所有字符剪切再保存,导出上面没有损坏格式的压缩文件。
保存出来,发现解压后里面存在一个ELF可执行文件,放到kali里面执行就出现了我们的答案,也就不用对另外一部分分析了。
另外,简单一点的做法,可以直接用binwalk去分离损坏的文件,该行为和我们用010editor去修复文件同理,就是把结构正确的压缩文件分离出来。
类型 | 图片隐写、压缩文件修复 |
---|---|
工具 | StegSolve、binwalk、010editor |
Flag | flag{dd0gf4c3tok3yb0ard4g41n~~~} |
首先下载题目文件,打开后是一个有密码的压缩文件和一张图片。
看图片下方有一串盲文,这盲文难道是给盲人看吗,当然是给我们做题者的提示了,对照翻译表翻译后得到了压缩文件的密码“kmdonowg”。(盲文数字和字母同顺位是一样的,只能尝试了)
用该密码解压缩文件后得到的是一个wav音频文件,听过后发现是摩斯密码。网上有很多在线解析摩斯密码的网站,我这里使用的是“MorseCode.World”,地址是(https://morsecode.world/international/decoder/audio-decoder-adaptive.html),上传音频文件并点击“Play”后就会自动识别并翻译为text。
这里得到了一个字符串就是我们需要的答案,在提交之前还需要稍微处理一下,需要先小写并把开头的CTF去掉,再放进flag{}中提交(试了半天,甚至以为题目没做完)。
类型 | 压缩文件、编码 |
---|---|
工具 | MorseCode.World |
Flag | flag{wpei08732?23dz} |
代码审计,下载文件,为某源代码,刚下载,杀毒软件就提示“include.php”中存在后门,这杀毒软件好啊。回归正题,正常的源代码审计可以通过搜索关键词或者匹配特定字符的正则表达式来找到关键性文件。题目提示了我们需要找到webshell的密码,这里我们可以用一些关键词比如“pass、password、passwd”去看看有没有恶意代码符合条件。这里输入passwd后发现include.php中包含恶意代码。
我们找到该文件,发现需要的密码就在文件中。
类型 | 代码审计 |
---|---|
工具 | 无 |
Flag | flag{6ac45fb83b3bc355c024f5034b947dd3} |
这道题和上面一模一样,先下载文件,查找关键词“etc/passwd”,找到对应文件,密码就在其中。
类型 | 代码审计 |
---|---|
工具 | 无 |
Flag | flag{ba8e6c6f35a53933b871480bb9a9545c} |
下载题目文件,文件是一个wav的音频文件,音频类的CTF题目也非常的多,一般是放进AU或者其它音频分析软件先分析,再看如何进行下一步动作。这里我使用了Audacity,一款免费的音频分析编辑软件,软件中打开我们的题目音频文件。
很明显,左右声道是不同的内容,右声道(下面)是正常的歌曲,频谱也没有什么问题,这里我们可以把左右分开来分析。这里选择音频文件的“分离立体声轨”,就可以把左右声道分开,也可以删除其中一个声道或者导出其中任意一个声道。
这里左声道单独导出发现是一段摩斯密码,这里我尝试用在线的Morsecode.World去翻译结果发现翻译不出文字,不清楚为什么,希望有大佬解答一下。这里没办法就手工翻译了,通过长短来判断密码。
最后得到的摩斯密码如下,把他放到CyberChef中解码,就可以得到我们要的答案了。
..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.
类型 | 音频分析 |
---|---|
工具 | Audacity、CyberChef |
Flag | flag{5BC925649CB0188F52E617D70929191C} |
图片隐写,下载题目文件,题目和图片内容没有任何提示,直接开始进行信息的收集。
先放进kali,strings看可打印字符中是否有提示或者直接有flag,发现结尾处有flag.vmdk的字眼,说明该图片很可能可以进行分离。
用binwalk分离文件,最终分离出一个带有密码的压缩文件。
前面没有任何有关压缩文件密码的提示,这里尝试判断是否是伪加密,用010editor打开该压缩文件,看到压缩源文件目录所在位置确实存在伪加密,这里把红色框内的09改为00,再保存就去除了伪加密。
重新解压缩就可以得到之前看到的文件名“flag.vmdk”,vmdk是一种虚拟磁盘镜像文件,可以用kali自带的7zip进行解析。最终就会得到一些文件夹,其中“key_part_one”和"key_part_two"就是我们目标flag的两个部分。
7z x flag.vmdk
先看part_one,这个编码很熟悉,前面的文章中的题目有完全一样的编码,叫“BrainFuck”,可以使用在线网页解析工具(https://www.dcode.fr/brainfuck-language)去解码。
+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<
++++[ ->+++ +<]>+ +++.< +++++ +[->- ----- <]>-- ----- --.<+ +++[- >----
<]>-- ----- .<+++ [->++ +<]>+ +++++ .<+++ +[->- ---<] >-.<+ +++++ [->++
++++< ]>+++ +++.< +++++ [->-- ---<] >---- -.+++ .<+++ [->-- -<]>- ----- .<
接下来,part_two也是一种特殊编码,可以放到在线软件(https://www.dcode.fr/cipher-identifier)中分析,然后通过结果找到特定编码方式进行解码,具体流程如图。
类型 | 图片隐写、伪加密、字符编码 |
---|---|
工具 | strings、binwalk、010editor、dcode.fr、CyberChef |
Flag | flag{N7F5_AD5_i5_funny!} |
下载题目文件,是一个二进制文件,“conf.bin”,应该是某种配置文件。题目提示了是宽带数据,在baidu上搜索宽带和bin相关的关键词,可以找到路由器配置文件一般就是以二进制的形式保存的。这里用专门的路由器配置查看工具“RouterPassView”,用工具打开配置文件。虽然题目没有提及泄露的具体信息是什么信息,我们可以尝试搜索路由配置文件中常见敏感信息的关键词:“pass”、“username”。其中username的值就是正确答案。
类型 | 文件类型判断 |
---|---|
工具 | RouterPassView |
Flag | flag{053700357621} |
直接下载题目文件,是一张图片,没有什么提示,直接strings打印字符看是否有特殊信息,发现内部含有其它文件后缀字眼,直接尝试用binwalk分离文件。
分离出的压缩文件内包含一张图片和另外一个压缩文件,并且该图片不能直接解压缩,需要一个密码,这里尝试使用010editor判断是否存在伪加密。
因为最近发现buuctf上面关于伪加密或者涉及伪加密的题目非常多,这里详细讲一下如何判断是否含有伪加密。伪加密一般指文件被识别为了加密文件但实际上不是加密文件。机器识别压缩文件是否加密主要是通过压缩文件中的一个“全局方式位标记”来判断的。压缩文件主要分为三个部分,分别是数据区、目录区、结束标识。其中只有数据区和目录区的开头存在“全局方式位标记”。并且这两个区的开头都是固定的16进制表示,即50 4B。以数据区开头为例,大致的十六进制分布如下。
名称 | 常见十六进制显示 |
---|---|
头文件标记 | 50 4B 03 04 |
解压文件所需pkware版本 | 14 00 |
标志(有时候没有) | 00 00 |
全局方式位标记 | 00 00 |
压缩方式 | 08 00 |
最后修改文件时间 | 50 A3 |
最后修改文件日期 | A5 4A |
我们只需要先找到50 4B,再按照相同的顺位找到全局方式位标记就可以进行下一步了。下一步就是具体的判断。我直接给大家列出来,另外这里的00和09只是一个例子,奇数就是加密,偶数就是不加密。
数据区全局方式位标记 | 目录区全局方式位标记 | 加密情况 |
---|---|---|
00 00 | 00 00 | 未加密 |
09 00 | 09 00 | 加密 |
09 00 | 00 00 | 伪加密 |
00 00 | 09 00 | 伪加密 |
前后只要不一致就是伪加密。以这道题为例,找到图像的全局方式位标记,发现文件开头的全局方式位标记是未加密的。
但是后面的目录区有了加密,所以我们需要把后面的加密改为原来的未加密状态,也就是把01改为00。
这样压缩文件就可以正常解压了,解压缩后是一个图片和又一个带有密码的压缩文件,且这个压缩文件是真加密。密码只能出现在图片当中,用steghide、无密码的方式跑一遍该图片,能够得到一个文本文件,其中包含了用于解压缩的密码,最终得到了答案。
类型 | 图片隐写、伪加密 |
---|---|
工具 | strings、binwalk、010editor、steghide |
Flag | flag{1RTo8w@&4nK@z*XL} |
下载题目文件,是一个pcapng日志文件,用wireshark打开,因为题目提示了是“黑客偷走了什么文件”,那流量中一定会包含该文件。打开Wireshark随便选择一个TCP流量然后右键选择追踪TCP流,很快就能看到如下行为记录。
显然这里就是黑客通过FTP请求了这个“flag.rar”的文件,紧接着下一个TCP流量就是文件内容,我们已原始数据的方式查看并复制到CyberChef中解码,解码得到的就是一个有密码的压缩文件。
可惜的是,该压缩文件并不是伪加密,并且也没有密码的提示,我们只能尝试爆破,先尝试使用ARCHPR爆破4位数字密码,如果不行就采用常规的爆破字典,这里用但很幸运,这个压缩包密码就是4位数字。解压缩后就是我们的目标答案。
类型 | 日志分析、压缩文件密码爆破 |
---|---|
工具 | wireshark、CyberChef、ARCHPR |
Flag | flag{6fe99a5d03fb01f833ec3caa80358fa3} |
下载题目文件,是个xls表格,xls文件其实可以看做是多个xml文件的压缩文件,所以也可以改为zip后缀进行解压缩。很多恶意的xls文件都是通过先编写恶意的xml文件压缩在一起并改为xls的形式,这里不过多展开了。我们先strings看一下xls内包含了哪些文件以及文件的纵深结构,而在其中就发现了flag.txt的路径。
把xls文件后缀名更改为zip并解压缩,通过这个路径就能找到flag文件了。
类型 | xls |
---|---|
工具 | strings |
Flag | flag{M9eVfi2Pcs#} |
下载题目文件,是个很小的pcapng,用wireshark打开并追踪TCP流,发现了下面很像是登录的请求流量。
其中用户名是admina,密码是adminb,放在一起并进行md5处理,输出的结果就是答案。
类型 | 日志分析、编码 |
---|---|
工具 | wireshark |
Flag | flag{1d240aafe21a86afc11f38a45b541a49} |
下载题目文件,为一个jpg格式的图片,先放kali用strings看一下有没有关键信息,在strings输出的末尾发现了一个docx的后缀,说明该图片内应该藏有什么别的文件。这里发现后尝试用binwalk分离但没有效果。
这里只能用010editor具体看一下文件了,010editor提供了很多模板用于分析文件结构。这里加载完图片后也是给出了这个图片的结构,然后很明显的发现有一段unknownPadding,仔细一看发现是50 4B开头也就是常见的压缩文件头,这里选中50 4B开始的所有字符并右键“Select”选择“Save Selection”。
导出的压缩文件内部是一个含有二维码的docx文件,用qr_research扫描得到flag。
类型 | 图片隐写 |
---|---|
工具 | strings、010editor、qr_research |
Flag | flag{you are the best!} |
终于写完12题了,这次的12题的工作量显著上升了,而且目前还没有遇到难题,顶多是套路有点绕,看来后续只会越来越费时,希望大家支持的话给我点点赞,大家的赞就是我更新的动力,感谢大家。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。