misc
1.misc3
解压后打开发现是bpg格式文件,下载bpgview或者honeyview看图软件打开即可
2.吹着贝斯扫二维码
得到一堆乱码的文件和一个flag.zip,题目说和base有关,猜想可能是文件名连在一起然后解密,得到之后发现不对,这些文件发现全为jpg图片,修改后缀,得到一堆二维码残片
用010editor查看文件,发现文件尾部还有数字,猜测应该就是图片编号,ps拼接,扫码为BASE Family Bucket ??? 85->64->85->13->16->32
,打开flag.zip发现有备注信息
再根据扫码的提示信息进行解码,base32->base16->Rot13->base85->base64->base85,最后解码为ThisIsSecret!233,为flag.zip的密码,解压的到flag{Qr_Is_MeAn1nGfuL}
3.损坏的压缩包
压缩包打不开,在010editor打开,发现是PNG,改后缀
4.谜之栅栏
俩张图片找不同,使用010editor的文件比较功能找到两张图片的十六进制不同点
在根据题目提示,栅栏为2,ctfshow{f0a6a0b721cfb949a7fb55ab5d8d210a}
5.你会数数吗
给你一堆乱码,再根据题目提示,进行词频统计,可以利用工具,也可以跑脚本
6.你会异或吗
根据题目与提示,在010editor打开,并异或,输入50,得到PNG图片,在保存!
7.我吐了你随意
打开文件,告诉你了o宽隐谢你,在线解码
8.misc2
解压后打开显示乱码,看第一行有png,更改文件格式为png,打开
9.misc4
得到6个文件,全是乱码,在010editor打开,通过文件头来判断文件的类型,遇到不熟悉的可以百度一下,后缀依次顺序是 png、jpg、bmp、gif、tif、webp,
10.misc5
打开为png图片,在010editor查看有没有ctfshow
11.misc6
跟上一题一样,ctrl+f搜索ctf![image]
12.misc7
一样
13.misc9
跟上题一样
14.misc10
用binwalk分离就得到flag,
15.misc11
010editor查看,有两个IDAT,说明第一块是直接打png图片显示的内容,而第二个才是flag隐写的地方,删掉第一个就得到flag,需要用到Tweakpng
在保存
16.misc12
跟上一题差不多,发现有几十个IDAT,需要删掉前面8个IDAT块才能出来flag
17.misc13
提示了flag在图片末尾,
发现是隔了一位字符每隔一位选一个字符就是ctfshow,跑脚本
18.misc14
看到提示,使用binwalk或者foremost分离,但都分离不出来,但有两个JPG
,flag应该在另一个JPG里,使用dd分离文件
19.misc15
在010editor查看,得到falg
20.misc16
用binwalk -e分离,打开第三个文件的到flag
21.misc17
用binwalk分离,发现没有用,在用zsteg分析,发现有隐藏数据
把他分离出来,打开是乱码,在用binwalk分离这个,得到flag
22.misc19
在010editor查看,发flag
23.misc20
提示了在评论里,使用exiftool分析
发现是谐音,ctfshow{c97964b1aecf06e1d79c21ddad593e42}
24.misc21
还是使用exiftool分析
flag像HEX编码,我们转字符试试
发现有四个xy,把他们转为16进制,
点击查看代码
print('ctf{'+hex(3902939465)[2:]+hex(2371618619)[2:]+hex(1082452817)[2:]+hex(2980145261)[2:]+'}')
25.misc22
这题是 thumbnail 隐写,命令:exiftool -ThumbnailImage -b misc22.jpg > 1.jpg
26.misc23
在exiftool查看,转换时间戳,在转hex来获取flag
print('ctfshow{'+hex(874865822)[2:]+hex(2699237688)[2:]+hex(2156662245)[2:]+hex(460377706)[2:]+'}')
27.misc41
使用010Editor打开,搜索 F001看到ctf
ctfshow{fcbd427caf4a52f1147ab44346cd1cdd}
28.misc24
根据提示,要修改图片的高,高改为250在保存
28.misc25
与上题一样,
改为250,
29.misc26
这个就需要跑脚本了
点击查看代码
import os
import binascii
import struct
crcbp = open("misc26.png", "rb").read() #打开图片
for i in range(1024):
for j in range(1024):
data = crcbp[12:16] + struct.pack('>i', i)+struct.pack('>i', j)+crcbp[24:29]#从IHDR开始17个字节,其中宽和高用i和j代替,并以4个字节存放i和j。
crc32 = binascii.crc32(data) & 0xffffffff
if(crc32 == 0xec9ccbc6): #010Editor第二行倒数3字节,加第三行第一字节。按顺序写就行,不用改。
print(i, j)
print('hex:', hex(i), hex(j))
#900 606
#hex: 0x384 0x25e
将高改为606就行
30.misc27
把高改为250就得到flag