羊城杯MISC复现
并没有参加羊城杯,但是题目听说质量很高,对着WP复现一下。
hidden
这个题目附件下下来,有一个txt,再就是一个wav 。txt 这里给了提示是 60=()+(),可以想到rot13和rot47。这里我一开始是先rot13然后rot47发现解出来还是没什么用。所以就得换个方式,先rot47解码一下,然后再rot13解码一下。最后得到:
1 | import wave |
其实就是要根据这段代码来进行逆向:
1 | import wave |
不一样的数据库2
给了一个压缩包,里面是一个png和kdbx文件,不过都是加密了的。用winzip打开发现也是需要密码,可以排除掉伪加密。备注信息也没有啥东西,放到010去看一下,在末尾处发现:this is the 6 number,猜想可以用ARCHPR去爆破,爆破出来的密码是753951。然后就得到了一张残缺的二维码和一个kdbx文件。残缺的二维码可以直接PS补全。QR扫码之后得到:
NRF@WQUKTQ12345&WWWF@WWWFX#WWQXNWXNU,但是这个不是kdbx的密码。而是得先rot13解密一下,得到:AES@JDHXGD12345&JJJS@JJJSK#JJDKAJKAH ,这个密码才是kdbx文件的密码(其实这里照片的名字13也是一个提示,
进去之后可以看到:

给了提示:passisDASCTF

右击编辑记录,然后从历史里面找到第四条记录,高级选项里面编辑字符串,可以看到AES密文,然后联想前面的passisDASCTF。可以猜到密钥就是DASCTF。解密即可。
注:这个AES找个在线的解密网站,输入密文和KEY,解密就行了。不知道为啥用工具会解密不出来。
miaoro
题目附件给的是一个流量包,wireshark打开,然后去追踪TCP流量,一个一个流去看,看到第6个流的时候,cookie那里可以看到有一大串编码的字符串。这里可以联想到shiro。这里用到ABC_123大佬的工具去解密。流6一共有三段cookie数据,这里一个一个去试,去解码,可以在第三段cookie解密后看到:

可以发现一半的flag。这里继续往后面翻流。一个一个去看。从流7开始多了一个首部字段:GWHT,并且还是base64编码的,从流7开始解码,可以发现是在执行命令,whoami。翻到流10的时候,base64解码一下发现是:echo Th15_11111111s_pP@sssssw000rd!!!>pass.txt
其实到这里我会想着去分离一下,看有没有有用的数据。然而并没有分离出啥有用信息,于是继续翻。流13执行的命令解码后是:
certutil -urlcache -f "http://192.168.1.3:801/secret.txt",感觉是有用的信息,也看到返回了一大串字符串,base64解码看一下:

可以看到结尾其实是压缩包的开头,倒叙一下就行了。这里全过程都可以通过cyberchef来实现。不过这里有个问题,直接在cyberchef去复制我画框的右半部分不行,这里是先把所有内容复制到vscode,然后按住鼠标中键滑轮进行选中,把我们需要的那个部分提取出来。
提取出来之后,注意有换行,然后需要逆序,然后还需要转16进制,这些都可以通过cyberchef一步到位:

保存为zip文件,密码就是我们之前从流量分析中提取到的那个。解压缩之后是一张图片。名字叫flag2。打开之后发现有些内容没显示出来,这里很明显是宽高问题,我直接跑之前存的那个修改宽高的脚本不太行。所以放到010去改,模板不知道为啥显示的有问题,直接通过模板去找宽高不太行,直接手动找吧。宽高的位置在:00A0 H 这里:

FF C0 00 11 08 后面跟着的就是宽高数据,我这里把宽高改成了一样,都是 05 7C ,改完之后就可以看到完整的图片了,后面就是一个设计好的密码体系了:

翻译过来就是,EBOFDELQDIAA} 。和之前的拼接在一起就是:DASCTF{B916CFEB-C40F-45D6-A7BC-EBOFDELQDIAA}
checkin
这个题目附件解压缩之后是一个flag.txt文件,里面是16进制,压缩包备注信息也给了一段base的编码。看到16进制自然而然的想到去转成文件,放到cyberchef里面去看看,不过这里要注意会有一些空格啥的,用cyberchef自带的remove whitespace功能去消除一下即可。可以看到有wireshark字样,所以导出来文件把后缀改成.pcap 。这个压缩包打开发现有很多TLS流量,这里会想着去给他解密,但是那个base编码格式不对,所以得再去找信息。这里是用到了wbStego4open 来对txt文件进行的隐写。猜测密码就是那个base解码后的。
这个base用的是base58 。所以还是可以下载一个爆破常见加密方式的,可以避免比赛的时候去一个一个试。这里随波逐流工具箱就可以实现。base58解码出来是Welcome2GZ 。用wbsteg4 decode出来是一个log文件,可以想到这个是tls的,导入到wireshark 。之前做的一个题目是导入私钥,这里是log。其实大差不差:编辑->首选项->protocol->TLS->导入log

TLS解密之后,很多HTTP流量就可以看了,我们可以一个一个去追踪HTTP流去翻,翻到流33的时候可以看到有个flag.gif,可以怀疑这里就是有用的信息,发现对应的分组是2016,于是我去导出HTTP对象,找到2016,把他进行导出。导出的是一个php文件,但是内容里面很明显的GIF信息,于是想着去分离,这里我一开始是扔到kali里面,foremost分离,发现分离出来一半的gif,是有点问题的。于是换了一个,用binwalk去分离,发现好用一些: binwalk -D=gif upload.php 分离出来的gif是正常的。
附binwalk常见命令:
1 | binwalk -e firmware.bin 这个功能也是一个常用的功能,在CTF中很多文件分解的misc题都可以使用binwalk提高效率相对于使用winhex这类工具。可以使用-e选项提取它在固件映像中找到的任何文件。 |
最后一步就是gif时间间隔隐写,这里可以用脚本,也可以直接用kali自带的一个神器:identify

identify -format "%T " flag ,可以得到时间间隔, 3 换成 0 , 23换成 1,然后 01去转ascii即可。

最终output得到flag
so much
这个题目给的附件是一个.ad格式,首先这个名字看上去就像是被编码过的,拿过去base64解码一下发现:shift!
然后ad这种后缀的文件需要用到FTK来进行挂载,这里用的工具是:FTK Imager4.7.1.4_x64

File -> image mounting -> image file 选择我们要挂在的文件,发现需要password 。这里其实可以联想到一开始翻译出来的shift!,但是很遗憾是错的,这里把文件放到010去看,发现结尾处有一段提示:key is : 1234567 really ? 这里就是脑洞了。真实的密码有shift+数字 来得到:!@#$%^&
mount之后会产生一个新的磁盘,我这里是F盘:

可以发现时间上是存在规律的,从0.crypto文件开始,提取它的时间戳,提取19为0 , 20为1 ,脚本如下:
1 | import os |
可以得到:the_key_is_700229c053b4ebbcf1a3cc37c389c4fa
所以就只剩下最后一层了,文件是crypto后缀,这种是encrypto for win 这款软件加密生成的。所以我们用这个软件解密即可,密码是700229c053b4ebbcf1a3cc37c389c4fa ,然后依次解开 0.crypto 和 1.crypto ,对应内容拼接即可DASCTF{85235bd803c2a0662b771396bce9968f}。注意这里的密码好像只能手输。。。
1z_misc
脑洞题,题目给了一个加密的压缩包和txt文件。
内容:
1 | 天地玄黄,宇宙洪荒;日月盈昃,辰宿列张;万物芸芸,息息相关;是以十二岁而行二十八宿,其间奥妙,待探寻,显真章。 |
可以猜想这个解出来就是加密压缩包的密码。给了一个hint.jpg:

这个题目的规律就是,里面一圈,即12个时辰,是顺时针顺序,子对应 1,丑对应 2 ,寅对应3 ,依次类推,最外面二十八星宿对应的是逆时针。若女可为11,可为1124……觜可为91,亦可为725……如此往复,周而复始。 即(1,1) 和 (11,24) 都对应女,这里也可以对上,1代表子,然后1代表最外圈逆时针开始也是女,11对应戌,24即从奎开始逆时针数24下,也可以到女。所以规律就清晰了,对[43,101,55,16,16,1017,28,812,824,43,55,226,101,55,55,415,1017,1027,28,28,617,824,28,812,1027,16,101,16,55,1027,1017,28,16] 进行一下编号即可:
(4,3) (10,1) (5,5) (1,6) (10,17) (2,8) (8,12),(8,24)(4,3)(5,5)(2,26)(10,1)(5,5)(5,5)(4,15)(10,17)(10,27)(2,8)(2,8)(6,17)(8,24)(2,8)(8,12)(10,27)(1,6)(10,1)(1,6)(5,5)(10,27)(2,8)(1,6)
翻译过来就是 心,胃,心,奎,奎,心,奎,心,胃,心,心,心,胃,心,心,胃,心,奎,奎,奎,奎,胃,奎,心,奎,奎,胃,奎,心,奎,心,奎,奎
对应三个元素,( . - 分隔符)可以想到摩斯密码,用到cyberchef的split模块

这里心对应.还是胃对应.还是奎对应.,这个得通过一个一个去尝试来看,得到的E@SI1Y! 拿过来解密:
图片是一个天琴座的图片,flag用010打开没看到什么有用信息。要用到一个叫lyra的工具,将flag后最改成.lyra,然后用lyra工具解码出.wav文件。网上语音转文字一下。最后是社会注意核心价值观编码。