ctfshowmisc入门

发布时间 2024-01-13 00:05:33作者: followthrough

misc
1.misc3
解压后打开发现是bpg格式文件,下载bpgview或者honeyview看图软件打开即可image
2.吹着贝斯扫二维码
得到一堆乱码的文件和一个flag.zip,题目说和base有关,猜想可能是文件名连在一起然后解密,得到之后发现不对,这些文件发现全为jpg图片,修改后缀,得到一堆二维码残片image
用010editor查看文件,发现文件尾部还有数字,猜测应该就是图片编号,ps拼接,扫码为BASE Family Bucket ??? 85->64->85->13->16->32
,打开flag.zip发现有备注信息
image
再根据扫码的提示信息进行解码,base32->base16->Rot13->base85->base64->base85,最后解码为ThisIsSecret!233,为flag.zip的密码,解压的到flag{Qr_Is_MeAn1nGfuL}
3.损坏的压缩包
压缩包打不开,在010editor打开,发现是PNG,改后缀image
4.谜之栅栏
俩张图片找不同,使用010editor的文件比较功能找到两张图片的十六进制不同点image
在根据题目提示,栅栏为2,ctfshow{f0a6a0b721cfb949a7fb55ab5d8d210a}
5.你会数数吗
给你一堆乱码,再根据题目提示,进行词频统计,可以利用工具,也可以跑脚本image
6.你会异或吗
image
根据题目与提示,在010editor打开,并异或,image输入50,得到PNG图片,在保存!image
7.我吐了你随意
打开文件,告诉你了o宽隐谢你,在线解码image
8.misc2
解压后打开显示乱码,看第一行有png,更改文件格式为png,打开image
9.misc4
得到6个文件,全是乱码,在010editor打开,通过文件头来判断文件的类型,遇到不熟悉的可以百度一下,后缀依次顺序是 png、jpg、bmp、gif、tif、webp,image
10.misc5
打开为png图片,在010editor查看有没有ctfshowimage
11.misc6
跟上一题一样,ctrl+f搜索ctf![image]image
12.misc7
一样image
13.misc9
跟上题一样image
14.misc10
用binwalk分离就得到flag,image
15.misc11
010editor查看,有两个IDAT,说明第一块是直接打png图片显示的内容,而第二个才是flag隐写的地方,删掉第一个就得到flag,需要用到Tweakpngimage
在保存image
16.misc12
跟上一题差不多,发现有几十个IDAT,需要删掉前面8个IDAT块才能出来flagimage
17.misc13
提示了flag在图片末尾,image
发现是隔了一位字符每隔一位选一个字符就是ctfshow,跑脚本image
image
18.misc14
看到提示,使用binwalk或者foremost分离,但都分离不出来,但有两个JPGimage
,flag应该在另一个JPG里,使用dd分离文件image
19.misc15
在010editor查看,得到falgimage
20.misc16
用binwalk -e分离,打开第三个文件的到flagimage
21.misc17
用binwalk分离,发现没有用,在用zsteg分析,发现有隐藏数据image
把他分离出来,打开是乱码,在用binwalk分离这个,得到flagimage
22.misc19
在010editor查看,发flagimage
23.misc20
提示了在评论里,使用exiftool分析image
发现是谐音,ctfshow{c97964b1aecf06e1d79c21ddad593e42}
24.misc21
还是使用exiftool分析image
flag像HEX编码,我们转字符试试image
发现有四个xy,把他们转为16进制,

点击查看代码
print('ctf{'+hex(3902939465)[2:]+hex(2371618619)[2:]+hex(1082452817)[2:]+hex(2980145261)[2:]+'}')

image
25.misc22
这题是 thumbnail 隐写,命令:exiftool -ThumbnailImage -b misc22.jpg > 1.jpgimage
26.misc23
在exiftool查看,image转换时间戳,在转hex来获取flag
image
print('ctfshow{'+hex(874865822)[2:]+hex(2699237688)[2:]+hex(2156662245)[2:]+hex(460377706)[2:]+'}')
image
27.misc41
使用010Editor打开,搜索 F001看到ctfimage
ctfshow{fcbd427caf4a52f1147ab44346cd1cdd}
28.misc24
根据提示,要修改图片的高,高改为250在保存image
image
28.misc25
与上题一样,image
改为250,image
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就行
image
30.misc27
把高改为250就得到flag
image
image