题目难度:★
题目编号:QSNCTF-2023-T-MISC-20230228003
题目描述:今天维护网站的时候出了一道这样的题目,上传上来看看大家怎么解,flag格式为:qsnctf{xxx}。
下载解压文件,得到一个txt文本。
打开查看内容,除了几段文字,并没有什么其他有价值的信息。
联系题目,想到是隐写。将文件拖进kali中,使用vim
查看,有很多奇怪的字符。上网查询。知道了是 0宽度字符隐写。
这里再提供一个文章供大家参考:零宽度字符隐写 | Lazzaro (lazzzaro.github.io)
使用在线工具解题:0宽隐写在线解密
qsnctf{n1ha0,th1s is zerowidth}
题目难度:★★★
题目描述:这是一个未知的文件加密,请你获得FLAG吧!flag格式为:flag{xxx}。
下载解压文件,发现需要密码。使用010打开压缩包,再最后面发现提示。
这里告诉我们密码是 SiertingXXXX
这个形式的,而XXXX
代表的是数字。知道了这些,我们使用爆破工具对压缩包进行爆破。
这里我们打开工具ARCHPR
,够选 所有数字一栏,因为我们已经知道一部分提示,只有后面数字不知道,所以我们在掩码一栏中输入Sierting????
。其中 ? 代表着是需要爆破的
压缩包密码
Sierting2023
解压文件后,我们得到一个Virtual
的文件。没有后缀,不知道这是什么文件。
没关系,我们拖到kali中,使用 file
命令对文件进行查看,得到Virtual: VMware4 disk image
这段提示,根据机器翻译,得到 虚拟:VMware4磁盘映像。 这应该是一个 虚拟硬盘文件。
我们使用DiskGenius
工具打开该文件。
左上角点击 磁盘
->打开虚拟磁盘文件
,将刚刚的文件导入进去,然后下载该文件。
得到enc
文件,使用010查看,没有有用信息,根据题意,这个文件应该是被加密过。
这里放一篇文章供大家了解一下:个人磁盘加密软件,使用VeraCrypt进行整盘加密介绍 - 知乎 (zhihu.com)
我们使用工具VeraCrypt
工具对此进行解密
第一步,我们选择enc文件,点击左下角加载文件,这里要输入密码,我们这题从头到尾就只有一个密码Sierting2023
,得到文件,在该目录下看到两个文件,使用记事本打开就能看到flag
flag{d89421ac9cf847b0173ee08a7flag{d89421ac9cf847b0173ee08a74cfd48b}
MC,我的世界,这题大家自己去做做,看了下网上好像也有wp。
题目难度:★★
题目描述:题目来源于2023商丘师范学院第三届网络安全及信息对抗大赛线下赛,flag格式为:SQNU{xxx}。
下载解压文件,得到一张图片,拖到kali中分析一下,发现无法显示。
这里长款有问题的图片是无法再kali中显示的,md中也是一样。算是一个小细节,大家可以注意下。
那倒这里,我们需要进行长宽爆破。
import binascii
import struct
crcbp = open("sq.png","rb").read()
for i in range(2000):
for j in range(2000):
data = crcbp[12:16] + \
struct.pack('>i',i)+struct.pack('>i',j)+crcbp[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
if(crc32 == 0x60838BCD ):
print(i,j)
print('hex:',hex(i),hex(j))
这里我们需要了解png的头文件等信息:CRC爆破png图片宽度和高度原理以及python代码_根据crc得出正确高度-CSDN博客。
这里大家还是有必要去了解一下,下一题也会用到。
爆破得到原本的长宽,使用010对图片进行编辑。得到二维码。
使用工具QR Research
扫描二维码,得到一串base64
U1FOVXtXZWxjb21lX3RvX1NRTlUhfQ==
import base64
s = 'U1FOVXtXZWxjb21lX3RvX1NRTlUhfQ=='
sw = bytes(s,'utf-8')
st = base64.b64decode(sw)
print(st)
SQNU{Welcome_to_SQNU!}
题目难度:★
题目描述:这是什么,好吃吗?flag格式为:flag{xxx}。
下载解压文件,根据题意,题意?应急食品?我超 ○!
下载解压文件,我们得到一个txt文件,打开文件查看,base64编码。拖到kali中进行解码。
base64 -d food.txt > ouput
使用010打开查看文件,发现在最后有 hint 提示 :GNP 反过来是PNG形式。我们返回查看文件头,其实就是奇偶位互换。这里我们有两个解法
一、
我们将’food.txt’的文件进行Base64解码,然后将解码后的数据重新编码为PNG格式并保存为’ys_food.png’。
二、
我们把十六进制值复制下来写一个脚本对奇偶位进行互换,然后修改一下文件后缀就可以得到
这里我们用第一个方法解决。
import base64
file = open('food.txt','rb').read()
data = base64.b64decode(file)
file1 = open('ys_food.png','ab')
for i in range(len(data)):
l = data[i] <<4 & 255
h = data[i] >> 4
data1 = (l + h).to_bytes(1,'little')
file1.write(data1)
file1.close()
得到一张派蒙
的图片,我们使用Stegosolve
工具对文件进行分析,得到flag
也可以使用kali中的zsteg
直接分析文件,就可以看到flag。
flag{3m3rg3nc9_F00d}
🆗的啊,到这里,我们除了第一排的问卷调查
,反馈
,签到
,再签到一次
以及MC大挑战
没有wp之外
A1-Misc
部分已经全部被我们解决啦!
呜呼呼!给自己👍一下!
作为CTF的新手,我非常渴望在这里向各位师傅请教,并期待得到您的宝贵指导。如果我有任何错误或需要改进的地方,请不吝赐教,我会虚心接受并努力改正。