ctfshow misc入门
misc 1
图片上直接就是flag
ctfshow{22f1fb91fc4169f1c9411ce632a0ed8d}
misc 2
打开是图片的十六进制,直接转图片,拿到flag
ctfshow{6f66202f21ad22a2a19520cdd3f69e7b}
misc 3
bpg格式,查看拿到flag
ctfshow{aade771916df7cde3009c0e631f9910d}
misc 4
被拆分了,改文件后缀就行
ctfshow{4314e2b15ad9a960e7d9d8fc2ff902da}
misc 5
藏在文件信息头中
ctfshow{2a476b4011805f1a8e4b906c8f84083e}
misc 6
010直接看,拿到ctfshow{d5e937aefb091d38e70d927b80e1e2ea}
misc 7
010直接看,拿到ctfshow{c5e77c9c289275e3f307362e1ed86bb7}
misc 8
flag在图片文件中图片文件中。
foremost提取出来一张png,拿到ctfshow{1df0a9a3f709a2605803664b55783687}
misc 9
flag在图片块里。
010直接看,拿到ctfshow{5c5e819508a3ab1fd823f11e83e93c75}
misc 10
flag在图片数据里。
binwalk提取出来,10E5打开拿到ctfshow{353252424ac69cb64f643768851ac790}
misc 11
flag在另一张图里。
把第二个 IDAT 数据删除,重新打开图片发现有flag:ctfshow{44620176948fa759d3eeafeac99f1ce9}
misc 12
flag在另一张图里。
和11解法一样,不过是多删几个
ctfshow{10ea26425dd4708f7da7a13c8e256a73}
misc 13
flag位置在图片末尾。
ct¹f…s†hªoKw°{!aeS6¥eT446xc%4Ý8ïf«73•9b‚7ºeEb|2Td~1:däeñ6úeõ412fT8ñ329éal}
隔一个提取,一共有四串,但只有一个为真
ctfshow{ae6e46c48f739b7eb2d1de6e412f839a}
ctfshow{ae6e3ea48f518b7e42d7de6f412f839a}真
ctfshow{1e3e2ed48f518b7e4267de1c412a839a}
ctfshow{ae6e3fa48f528b1742d72e6f41298380}
misc 14
flag在那张图里。
binwalk自动提取失败,使用dd手动提取
1 | binwalk -e --run-as=root ./misc14.jpg |
拿到flag:ctfshow{ce520f767fc465b0787cdb936363e694}
也可以复制在010里FFD8FF到FFD9的部分,然后新建一个PNG图片
misc 15
flag被跳过去了。
010直接拿到flag:ctfshow{fbe7bb657397e6e0a6adea3e40265425}
misc 16
flag在图片数据里。
binwalk提取ctfshow{a7e32f131c011290a62476ae77190b52}
misc 17
flag在图片数据里。
使用zsteg发现隐写数据,然后分离,再使用binwalk分离,拿到一张png图片,图片上就是flag
ctfshow{0fe61fc42e8bbe55b9257d251749ae45}
misc 18
flag在标题、作者、照相机和镜头型号里。
按照题目,查看属性拿到flag。ctfshow{325d60c208f728ac17e5f02d4cf5a839}
misc 19
flag在主机上的文档名里。
010打开,拿到flag
ctfshow{dfdcf08038cd446a5eb50782f8d3605d}
或者是使用exiftool或在线exif查看器
用strings也可以,flag就在最上边
misc 20
flag在评论里。
exiftools查看,发现西替爱抚秀大括号西九七九六四必一诶易西爱抚零六易一弟七九西二一弟弟诶弟五九三易四二大括号
ctfshow{c97964b1aecf06e1d79c21ddad593e42}
misc 20
flag在序号里。
exiftool发现ctfshow{}和686578285826597329,686578285826597329=>hex(X&Ys)
最终发现是分段十进制数转十六进制数,3902939465=>e8a22149
ctfshow{e8a221498d5c073b4084eb51b1a1686d}
misc 22
flag在图片里。
缩略图隐写(thumbnail隐写),可以用magicexif,或者随波逐流,也可以用exiftool
1 | exiftool -ThumbnailImage -b misc22.jpg > 1.jpg |
ctfshow{dbf7d3f84b0125e833dfd3c80820a129}
misc 23
flag在时间里。
exiftool查看发现
ctfshow{}, UnixTimestamp=>时间戳, DECtoHEX=>十进制数转十六进制数,getflag
1997-09-22 02:17:02+08:00, 2055-07-15 12:14:48+08:00, 2038-05-05 16:50:45+08:00, 1984-08-03 18:41:46+08:00
874865822
1 | 1997-09-22 02:17:02+08:00 => 874865822 => 3425649e |
ctfshow{3425649ea0e31938808c0de51b70ce6a}
misc 24
flag在图片上面。
BMP宽高修复,直接用PuzzleSolve一把梭就行,也可手动改高度为FA,flag:
ctfshow{dd7d8bc9e5e873eb7da3fa51d92ca4b7}
misc 25
flag在图片下面。
PNG图片宽高修复,属于CRC校验那种,一把梭or手动改,仍是FA,flag:
ctfshow{494f611cc5842dd597f460874ce38f57}
misc 26
flag还是在图片下面,但到底有多下面?。
同25,flag:ctfshow{94aef125e087a7ccf2e28e742efd704c}
misc 27
flag在图片下面
JPG宽高修复,flag:ctfshow{5cc4f19eb01705b99bf41492430a1a14}
misc 28
flag在图片下面。
GIF宽高修复,flag:ctfshow{59c8bc525426166b1c893fe12a387fd7}
misc 29
flag在图片下面。
同28,010查找每一帧的高度9600替换为FF00,然后拆帧,拿到flag
ctfshow{03ce5be6d60a4b3c7465ab9410801440}
misc 30
正确的宽度是950。
照着题目做就行,拿到flag:ctfshow{6db8536da312f6aeb42da2f45b5f213c}
misc 31
高度是正确的,但正确的宽度是多少呢。
PuzzleSolve一把梭,flag:ctfshow{fb09dcc9005fe3feeefb73646b55efd5}
misc 32
高度是正确的,但正确的宽度是多少呢
宽高修复一把梭,flag:ctfshow{685082227bcf70d17d1b39a5c1195aa9}
misc 33
出题人丧心病狂,把高度也改了
宽高修复一把梭,flag为:ctfshow{03070a10ec3a3282ba1e352f4e07b0a9}
misc 34
出题人狗急跳墙,把IHDR块的CRC也改了,但我们知道正确宽度肯定大于900
宽高修复一把梭,flag为:ctfshow{03e102077e3e5de9dd9c04aba16ef014}
misc 35
出题人负隅顽抗,但我们知道正确宽度肯定大于900
先改高度,改到600,看到下边有一坨乱码,证明高度差不多了。然后开始遍历宽度,在990到1000左右都能正常显示。
1 | import struct |
ctfshow{ca35201ca9ed607e5a68f44ef573fbc3}
misc 36
出题人坦白从宽,正确的宽度在920-950之间
先改高度为FF00,然后进行遍历,最后发现941应该是原来的宽度,flag:ctfshow{1ebf739f832906d60f57436b8179166f}
遍历脚本:
1 | import struct |
misc 37
flag在图片里
是GIF动图,直接拆,flag在第8、13、20、30、33帧
ctfshow{2056782cd57b13261dcbbe3d6eecda17}
misc 38
flag在图片里
用010打开,发现有8个FFD9,十分有九分的不对劲,看了其他大佬的wp发现是APNG格式
可以用honeyview/bandview逐帧查看,也可以用apng直接拆/转gif后拆。
flag为:ctfshow{48b722b570c603ef58cc0b83bbf7680d}
misc 39
flag就像水,忽快忽慢地流
是GIF时间间隔隐写,用PuzzleSolve一把梭,提取出时间间隔,然后360=>0,370=>1,最后再按照七位二进制数转ASCII字符串。也可用 imagemagick工具:identify -format “%T “ misc39.gif提取出,不过是36=>0,37=>1。下边为Python脚本实现
1 | with open("./1.txt", "r") as file: |
flag为ctfshow{52812ff995fb7be268d963a9ebca0459}
misc 40
flag就像歌,有长有短仿佛岁月悠悠
又是一个apng,拆了,应该是在apngframe01.txt这种记录详细信息文件中的隐写
1 | flag = "" |
![Pasted image 20241021224514](../../../program/aaaaaaaaaaa/notes/ctfshow/misc入门/image/Pasted image 20241021224514.png)
flag:ctfshow{95ca0297dff0f6b1bdaca394a6fcb95b}
misc 41
(本题为Misc入门图片篇和愚人节比赛特别联动题)
H4ppy Apr1l F001’s D4y!
愚人节到了,一群笨蛋往南飞,一会儿排成S字,一会儿排成B字。
发现少了文件头,补上,做不出来,还原。再看看题目,F001不是leet,是十六进制字节,搜索F001
拿到flag,ctfshow{fcbd427caf4a52f1147ab44346cd1cdd}
misc 42
flag有多长?2cm……不好意思打错了,41位
41位flag,扔随波逐流里发现不止一个IDAT块,也不是覆盖,看看长度,大多都在40多到126之间,那很有可能是ASCII码转字符串。
1 | with open('./misc42/1.txt', 'r', encoding='utf-8') as file: |
拿到flag,ctfshow{078cbd0f9c8d3f2158e70529f8913c65}
misc 43
错误中隐藏着通往正确答案的道路
扔随波逐流里,发现有12个IDAT块,11个长度大部分为384,且crc校验均是错误的。根据题面,将错误的crc校验码扔赛博厨子,拿到flag
flag:ctfshow{6eb2589ffff5e390fe6b87504dbc0892}
misc 44
错误中还隐藏着坑
扔随波逐流,发现有N多个IDAT块,crc校验True和False交替,应该是01替换,上脚本:
1 | def process_crc_file(file_path): |
然后把十六进制扔赛博厨子,拿到flag:ctfshow{cc1af32bf96308fc1263231be783f69e}
misc 45
有时候也需要换一换思维格式
换成bmp格式,然后binwalk提取出来一个压缩包,里边就是flag
1 | from PIL import Image |
ctfshow{057a722a5587979c34966c2436283e70}
misc 46
你见过扶乩吗
打开图片发现这玩意儿到处晃,用identity查看发现,174+49这些偏移量
根据GIF偏移量来绘图,绘制完,打开png图片就是flag
1 | from PIL import Image |
flag为ctfshow{05906b3be8742a13a93898186bc5802f}
misc 47
没见过扶乩,那你知道笔仙吗
又是apng,在每一个IDAT块前面都会有一个fcTL块,从中可以获取水平垂直偏移量
1 | import struct |
flag:ctfshow{6d51f85b45a0061754a2776a32cf26c4}
misc 48
附件的第(Di)七(Qi)题(Ti)中有提示。本题略脑洞,可跳过
用010打开看到提示,count FF & minus 1 ctfshow{32},翻译一下,应该是统计FF的数量,然后减一,flag ctfshow{中间有32个字符}
上脚本:
1 | with open('misc48.jpg', 'rb') as f: |
flag:ctfshow{0cb07add909d0d60a92101a8b5c7223a}
misc 49
它们一来就是十六种。本题略脑洞,可跳过
010打开看到有N多字符串,不正常,但对不上脑电波,查看其他大佬的wp发现是,提取出FFE?中的?位置的字符,拼接起来就是flag
1 | with open('./misc49/misc49.jpg', 'rb') as f: |
flag:ctfshow{0c618671a153f5da3948fdb2a2238e44}
misc 50
有时候视线也要放低一点
出题人说出完这题他就要跑路去玩MHR了,51题明年见
直接上stegsolve
flag:ctfshow{84470883ee1eec2e886436461bf79111}
misc 53
开始愉快的LSB部分。
stegsolve直接出
flag:ctfshow{69830d5a3a3b5006f7b11193e9bc22a2}
misc 54
还是愉快的LSB部分。
stegsolve直接出
flag:ctfshow{b1f8ab24b8ca223d0affbf372ba0e4fa}
misc 55
怎么又是愉快的LSB部分。
发现图片是倒着的,逆转一下
1 | from PIL import Image |
然后用stegsolve打开,发现zip文件头,保存,解压,拿到flag
flag:ctfshow{daf256838e19a19d9e7b0a69642ad5ee}
misc 56
怎么老是愉快的LSB部分。
直接上stegsolve
flag:ctfshow{1b30c28a5fca6cec5886b1d2cc8b1263}