大家好,废话杂谈放结尾了,直接上题。
下载题目文件,是一个压缩文件,含有一张图片和一个文本文件,但该文本文件需要先得到压缩文件密码才能看到。这里我们先分析这个图片看看有没有什么线索。
遗憾的是,经过一段时间分析,没有发现任何隐写或者其它有用信息,当然也可能是steghide且需要密码,但这里我们也没有密码信息,只能继续回到压缩文件本身。这里使用010editor并通过上一篇文章内的方法,很快就能发现该压缩文件是伪加密。
这里将09修改为00就解除了伪加密。打开文件发现内容是一串字符组成的图案和一段某种不认识的密文。
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
. ' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
.............................................
佛祖保佑 永无BUG
写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年。
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员。
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员?
佛曰:遮等諳勝能礙皤藐哆娑梵迦侄羅哆迦梵者梵楞蘇涅侄室實真缽朋能。奢怛俱道怯都諳怖梵尼怯一罰心缽謹缽薩苦奢夢怯帝梵遠朋陀諳陀穆諳所呐知涅侄以薩怯想夷奢醯數羅怯諸
在百度上搜索“佛曰”和“加密”,很快能找到一个加密方式叫“与佛论禅”,演示的加密后的密文格式和这里的相同。这里我们放进下面的在线解析器中解密,就可以得到答案了。(这个地址好像失效了,在搜索引擎内搜索“与佛论禅”解密就能找到其它在线工具。)
http://www.keyfc.net/bbs/tools/tudoucode.aspx
类型 | 伪加密、编码 |
---|---|
工具 | 010editor |
Flag | flag{w0_fo_ci_Be1} |
下载题目文件,是个压缩文件包,但是打开时显示“不是压缩文件”的报错,那我们就进入正常文件分析流程看看具体是个什么文件。用010editor打开这个压缩包,在文件开头看到了PNG的字样,说明其很有可能是个图片。
这里继续看末尾的组成,发现flag就写在末尾。
类型 | 文件隐写 |
---|---|
工具 | 010editor |
Flag | flag{i_am_fl@g} |
这又是一道日志分析题目,让我们找到被偷走的秘密文件。先下载日志文件并用wireshark打开,先不考虑流量被加密的问题,直接任意选择一个TCP流量并右键追踪TCP流,很快就能发现一段这样的流量,该流量中提到获取了一个rar的压缩文件。
继续往后翻就可以得到这个rar的具体内容,这里我们选择原始数据并把数据复制到CyberChef中。
该文件是一个有密码的压缩文件,经过分析该文件为真加密但我们并不知道密码。这里我就先尝试了一下常见的4位数字密码的爆破,用的是ARCHPR工具,最终得到该压缩文件的密码为1903,得到密码并解压缩文件,flag就在其中。
类型 | 日志分析、压缩文件密码爆破 |
---|---|
工具 | wireshark、CyberChef、010editor |
Flag | flag{d72e5a671aa50fa5f400e5d10eedeaa5} |
下载题目文件,是两个gif题目,遇到gif我经常会尝试把图像帧抽出来,看flag是否藏在其中,这道题倒是没有这个考点。两个gif一个能打开一个打不开,打不开的文件显示文件损坏,这里我们用010editor打开损坏的文件,发现它的文件头是缺失的。
文件头中定义文件类型的标识符一般称作“Magic Bytes”,如果遇到不知道类型的文件可以到WiKi中查找对应的标识符从而对文件类型进行识别。(https://en.wikipedia.org/wiki/List_of_file_signatures)
当然我们也不需要死记硬背,这些标识符的ASCII表示大部分是可以识别的。这里打开正常的gif图可以看到文件头应该是GIF89a。
所以损坏的文件应该是缺失了前面的“GIF8”,我们需要补充上去,不是所有文件的开头标识符都是可以正常输入的字符,所以这里我讲通用是如何做的,就是用记事本打开这个文件并在开头加上“AAAA”,缺多少就补充多少“A”。然后重新打开010editor,“A”的十六进制表示为41,把其改为标准的“Magic Bytes”就可以了。
改完后也是正确识别为了gif图片。打开图片,flag就在图片上。
类型 | 文件修复 |
---|---|
工具 | 010editor |
Flag | flag{zhi_yin_you_are_beautiful} |
下载题目文件,是一个名字叫“4位数”的加密的压缩文件,我们尝试用ARCHPR工具遍历4位数密码,发现密码为2016。
解压缩后的图片放到kali中分析,用eixftool查看图片的详细信息,发现flag就在其中。
类型 | 压缩文件密码爆破、图片隐写 |
---|---|
工具 | ARCHPR、exiftool |
Flag | flag{Wadf_123} |
这道题目稍微有点绕,我们一步步看。先下载题目文件,是一张图片,尝试了基础的信息收集包括strings、exiftool都没有收获,大概率是某种隐写,题目提示了“刷新”,而F5既代表刷新,也代表一种图片隐写方式。所以这里尝试用F5隐写解密。这个解密是有在线工具的,可惜都不太好用,这里还是用一个本地工具来解密,下载地址在这。(https://github.com/matthewgao/F5-steganography)
注意该工具不能使用太高版本java运行,因为该工具很多年前就没有进行更新了。这里我是用jre1.8.0来运行的,大致命令如下:
java Extract 图片绝对路径
它会将输出的字符放进工具目录下的“output.txt”,但是打开该文件后发现内容都是乱码。这里用010editor打开该文本文件,发现该文件头是“PK”,代表着输出的文件应该是一个压缩文件。
这里把文件改为压缩文件后发现需要解压密码,前面也没有任何关于密码的提示,所以先用010editor查看是否是伪加密。这里很快就能发现是伪加密,我们需要把这里的01改为00。
修改完成后伪加密也就得到了解除,可以正常解压缩文件,而我们需要的Flag就在其中。
类型 | F5隐写、伪加密 |
---|---|
工具 | F5-steganography、010editor |
Flag | flag{96efd0a2037d06f34199e921079778ee} |
下载题目文件,是个蛇的图片,放到kali中开始分析,先用strings看一下可打印字符。发现有一串似乎是base64的字符。
这里尝试对其进行解码。
这里是说Nicki Minaj哪一首歌曲和snakes有关,搜索了一下,是anaconda。但是好像没有下一步信息了,我们回去继续分析文件,用binwalk发现可以分离文件。
key里面包含的就是刚刚的base64,所以我们已经得到key了,现在就需要对cipher进行解密。题目只有一个snake,我们把关键词放进google搜索一下。发现了一个加密叫Serpent。
这里用一个在线的解密网站(http://serpent.online-domain-tools.com/)解密,我的输入是cipher文件内容的hex版本。解密后就得到了flag。
类型 | 图片隐写、编码、加密算法 |
---|---|
工具 | strings、binwalk、CyberChef、在线工具 |
Flag | flag{who_knew_serpent_cipher_existed} |
日志分析题目,并且题目提示了“菜刀”,这里大概率是指一款国内的webshell工具,所以我们要专注的是和菜刀相符合的流量,也就是要找出有菜刀特征的流量。关于菜刀或者其它常见的国内webshell工具的特征可以参考这位大佬的文章(https://blog.csdn.net/Sgirll/article/details/131860510),里面提到,菜刀的流量主要分为下面几方面。
(1)主要使用HTTP协议通信,控制命令和数据都通过POST请求传输。因此,可以通过HTTP请求头中的User-Agent、Referer等信息进行识别,eval函数必不可少,也有可能会被assert代替。
(2)使用了base64的方式加密了发送给“菜刀马”的指令,其中的两个关键payload z1和z2,该参数名称可变
(3)$_POST/$_GET/$_REQUEST
下载题目文件,用wireshark打开,找到HTTP流量然后右键追踪HTTP流,开始日志分析。首先看流量7,出现了z1和z2为名称的payload。我们具体分析一下这个流。
这里的编码看着很复杂,并且直接用base64解码是没用的,因为他是多段base64编码的组合。我们分成三份来看,第一部分是action的值,第二部分是z1的值,第三部分是z2的值。action本身就是多个base64编码组合,但是不影响我们理解意思。直接放进CyberChef去,可以看到解码了开头的一部分,设置了一些基础配置信息,没有什么用处。
然后把已经解码的部分删除,就能看到后面一部分的解码内容了。这个action在用fopen写某个文件,内容暂时也不知道。
接下来看z1,很显然,这个就是前面fopen要写的文件地址了,那么理所当然可以想到z2应该就是文件的具体内容。
直接把z2的值放进CyberChef,其会自动解码并渲染为图片。图片上有一串密码“Th1s_1s_p4sswd_!!!”,可惜的是,这个并不是最终答案。
我们回到HTTP流追踪继续分析,发现流量9中出现了关键字眼,分别是“flag.txt”和“passwd”。并且流量显示文件头是PK,也就是压缩文件。
这里需要把压缩文件导出到本地,我们可以设置为原始数据进行预览,然后把原始数据拷贝出来。
放进Cyberchef之后我们需要把50 4B作为开头,开头结尾别的字符(这里特指->||<-)需要删除。
导出压缩文件,需要解压缩密码,正是前面我们得到的密码,输入,解压缩,flag就在其中。
类型 | 日志分析、编码 |
---|---|
工具 | wireshark、CyberChef |
Flag | flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z} |
下载题目文件,是一张图片。做了一些基本的strings信息收集并没有发现什么特别之处。用010editor打开图片后显示CRC不匹配,CRC是一种图片的校验码,其可以用于判断图片在传输过程中是否出现数据损坏或者偏移。这个报错的原因就是CRC不匹配了,在ctf中最常见的情况就是图片的宽高被更改了。这里有很多方法改回原来的宽高。比较常用的是通过爆破,这里有个文章很详细的降了爆破的原理和方法,大家有兴趣可以看看。(https://www.cnblogs.com/yunqian2017/p/14449346.html)
这里我一般会用工具更快的解决,我会用“随波逐流”工具,是一个非常好用的杂项工具。这是他们的网址。(http://www.1o1o.xyz/bo_softdown.html)
把图片直接拖进工具中,就会快速的解析有没有常见的隐写,同时也会做CRC校验,如果出现校验失败会迅速爆破原本的宽高然后给出原图。这道题目就是几乎一秒不到就解出来了。
类型 | 图片隐写(CRC) |
---|---|
工具 | 随波逐流 |
Flag | flag{66666} |
下载题目文件,是一个gif文件,但题目中说“文件打不开”,那就想着要么是文件头损坏了,要么是文件后缀错了。用010editor打开这个gif文件,果然是和上面第4题类似的情况,GIF89a只剩下一个9a了。我们这里偷个懒,直接用记事本的方式打开在开头加上“GIF8”,正常的做法可以参考上面的第4题。修复好的gif文件是一串串字符串组成的动图,在kali中用以下命令分离,其中6.gif是我们的动图,flag.png是分离出来的帧的名称。
convert 6.gif flag.png
其中的字符串组合在一起是一个base64编码,我们放进CyberChef中就能得到最后的答案了。
类型 | 文件修复、编码 |
---|---|
工具 | convert、CyberChef |
Flag | flag{wang_bao_qiang_is_sad} |
下载题目文件,是一个二维码,扫码后并没有发现任何有用信息,放进kali里面用strings看一下可打印字符,发现末尾处存在别的文件名和后缀。直接尝试用binwalk分离文件,最终分离出多个压缩文件。
一共是四个压缩文件,两个有密码两个没密码,大概的思路应该是从没有密码的压缩文件中找到用于解压缩两个加密文件的密码。
这里先看7104和17012两个未加密文件,7104解压出了一个包含了base64编码的文本文件,放进CyberChef后得到原文是“asdfghjkl1234567890”。
17012中解压缩得到的是doc后缀的文件,直接用文本方式打开,其编码格式非常像是base64,这里我们把它全部放到CyberChef中,自动识别发现他是多层base64嵌套。一共是20次base64,放到CyberChef中一直选择自动解析就可以得到原文,原文是“comEON_YOuAreSOSoS0great”。
这两个字符串应该就是前面两个加密压缩文件的密码,“asdfghjkl1234567890”是文件716A的密码,“comEON_YOuAreSOSoS0great”是文件18394的密码。
这里有一个坑,716A文件中有一个flag.jpg的文件,一开始我以为他是最终flag的一部分,一直在考虑是什么隐写,前前后后试了一个多小时一无所获,就放弃了,其实这里啥都没有。
flag就在另外一个文件,文件18394中。用密码解压缩后是一段音频文件。用Audacity打开,发现是一段摩斯密码。
把文件上传到在线工具MorseCode.World中解析,可以得到答案为“MORSEISVERYVERYEASY”。记得要小写处理再提交答案。
类型 | 图片隐写、字符编码、音频分析 |
---|---|
工具 | strings、binwalk、CyberChef、MorseCode.World |
Flag | flag{morseisveryveryeasy} |
很简单的题目,把题目文件下载下来,strings看一下可打印字符,flag就在其中。
这里也演示一下用随波逐流工具,常见的杂项题目都可以用工具快速做出来。
类型 | excel隐写 |
---|---|
工具 | strings/随波逐流 |
Flag | flag{office_easy_cracked} |
这次的Misc题目比上次又难了一点,主要是开始出现一些坑,一不小心踩到就是半小时起,深深的感受到了出题者的小心机。这里提醒大家同样也是提醒自己,后续做题要多尝试不同方法,多尝试点别的方法,同一种方法一直没有答案也要学会放弃。
另外关于工具的使用,实际比赛中肯定是能解出答案的就是好方法,无论是用大神的工具比如这次用到的“随波逐流”,还是直接问ai,或者找到类似的题目直接得到答案,我觉得都没问题,快就行了。但平常的练习中最好还是要明白工具的原理,否则遇到真的需要自己解决的问题时可能会无从下手哦。
最近本牛马又被狠狠压榨了,写文章基本只能用午休和下班时间写了,还是感谢大家支持,每天看到有点赞和关注都会给我很大鼓励,感谢大家。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。