Misc 小计
写在前面:
主要是攻防世界和ctfshow的题目,先刷刷攻防世界的题目吧,再去ctfhub按顺序和类型练一练
顺便记录一些工具的使用方法
攻防世界
Nepnep 祝你新年快乐啦!
超级简单,点击就送,就用这道题开启misc之旅吧!
去B站看它给的视频,在评论区找到flag
Banmabanma
下载压缩包并解压,发现给了一张图片,斑马斑马
不难看出,这个很像那个条形码,于是网上找一个在线条形码识别网站扫描看看,果然识别结果就是flag
如来十三掌
这个题目偏向于考察密码学,下载下来一个word文件,打开发现是个密文
一下子就看出是与佛论禅密码啦,直接拿去解密
1 |
|
还是一段密文,再结合题目的十三掌,猜测可能是Rot13加密,于是去R13解密看看
1 |
|
还是一段密文,最后base64解密就得到flag了(搞不懂这个为什么是在misc的分类而不是密码学)
适合作为桌面
下载压缩包,解压得到一个图片,先放进StegSolve看看
哈哈哈直接发现了二维码,而且还是完整的,保存下来,再二维码识别一下
1 |
|
对照了一下,不是常见的那些文件头什么的,于是粘贴进winhex看看
发现是pyc文件,于是保存下来,再反编译
最后,将反编译后的py代码,修改一下再运行一下,得到flag
1 |
|
心仪的公司
解压得到.pcapng,不出意外应该是流量分析
用Wireshark打开,检索字符串flag,并没有得到想要的flag格式
然后又想检索一下“{”这个字符,可是在wireshark中一个一个找太慢了,于是在kali中用strings操作
1 |
|
哇去,一下子flag就出来了fl4g:{ftop_Is_Waiting_4_y}
pure_color
跟题目对应,打开是个全白的图片
把图片保存下来,用StegSolve打开,发现flag
2017_Dating_in_Singapore
先看题目描述
1 |
|
其中的-有点醒目,先以-为边界分成几行,发现是12行
1 |
|
再把附件下载解压,打开里面的pdf文件,发现是个日历
由于之前做过一道书籍密码的题,而且刚才的那串数字可以分成12行,因此这里猜测会不会这道题,原理也差不多呢
把刚才的12串数字当成12月,然后将数字每两个一起隔开
1 |
|
看起来应该是没什么问题,每一组数都没超过30,现在一个个对照日历标记
画得眼睛要瞎了,得到了flag
simple_transfer
下载下来一个.pcap,用wireshark打开检索flag没找到,strings也不行
在wireshark追踪协议也没发现什么,实在没什么思路,于是将这个文件放binwalk跑一下看看,有没有藏东西
1 |
|
还真有,再用foremost分离
1 |
|
查看分离出来的内容,得到flag
Training-Stegano-1
题目已经提示了是图片隐写术,将附件下载下来,用Stegsolve打开
图片太小了,根本看不了,丢进winhex看看
直接就看到flag了 passwd:steganoI
can_has_stdio?
解压出一个文件,属性就是文件
直接用记事本打开看看
嘿嘿,一看就是BrainFuck密码
拿去解密一下
直接就得到flag
Erik-Baleog-and-Olaf
还是个无后缀文件,先用记事本打开看看
这次是乱码,不过在结尾发现了png字符,用winhex打开看看
发现有一块地方有点奇怪
再用Stegsolve打开,发现是图片,再分析,找到了个二维码
发现还扫不了哈哈哈,仔细一看是颜色反了,黑色成白色了
于是保存图片下来,找一个图片颜色反转网站,反转图片
还是扫不了,发现好像缺了一块,在用Stegsolve保存一张比较清晰的其他图片
在丢进Stegsolve变成黑色保存,然后在ppt里面分别选清晰的那部分拼成二维码
扫码得到 flag (用QR扫比较快,手机可能扫不出来)
János-the-Ripper
还是个无后缀文件,先用winhex打开
发现504B是zip文件头,同时也看到flag.txt字符串
于是用foremost分离出zip文件
发现解压需要密码,于是用ARCHPR爆破(选择常用的字典)
爆出密码是fish
于是解压打开flag.txt文件,得到flag
Test-flag-please-ignore
解压得到一个无后缀文件,winhex打开
就一串字符,但看起来好像是16进制,试试16进制转字符串
得到了flag
hong
解压得到mp3文件,来新题型了哈哈哈哈
先听一下,发现文件损坏听不了,放进Audacity也卡不开
于是丢进kali用binwalk看看,是不是音频了藏东西了
1 |
|
果然有东西,再用foremost分离
得到了2张图片,其中一张就是flag了
misc_pic_again
题目的提示是flag = hctf{[a-zA-Z0-9~]*}
将图片保存下来,用Stegsolve打开看看,暂时没发现什么,但是Red、Green、Blue plane0 3个通道图像都是一样的
猜测可能是lsb隐写,于是试试
果然发现504b这个zip文件头,于是save 以1.zip的形式保存下来,记事本打开里面的文件,发现flag
reverseMe
打开就是一个反的flag
挺好分辨的,干脆就自己亲自识别flag吧
1 |
|
hit-the-core
下载下来一个.core文件,用记事本打开看看
发现一个格式很像flag的字符串
1 |
|
直接提交发现flag不正确,尝试各种密文解密都不行,最后发现前面的大写字母可以连成ALEXCTF,而且都是间隔4个
于是每隔4个取出字符,就得到了flag(累死我了)
1 |
|
glance-50
好奇怪的题目,打开就一条缝(gif动图),哈哈哈哈
先保存下来用Stegsolve打开看看,用里面的帧浏览器看
隐约可以看到字符飘过,不过这也太难看清楚了吧,缝那么小
于是用动态图片分解网站,逐帧分解
哇去,就这样出来了flag
normal_png
打开就一个小黑图片
好神奇,下载到本地打开后,就成了卡通图片
winhex打开没发现什么
Stegsolve、foremost都没发现,就想着会不会是图片高度的问题,尝试修改图片高度,试了几次发现了flag(一开始觉得图片挺完整的,就没往这方面想)
1 |
|
Aesop_secret
下载下来发现是张gif动图,有了上次的经验,直接放到动态图片分解网站分解
得到ISCC或者是15cc,提交发现不是flag,可能是解密的密匙吧
用记事本打开发现一个像是密文的字符串
1 |
|
优先考虑那种需要密匙的解密方式,(后面发现是AES解密)
1 |
|
连续解密两次得到flag
CTFSHOW
MISC入门
图片篇(基础操作)
misc1
打开图片就是flag,在线图片文字识别
misc2
解压得到一个txt文件,不难看出里面的 内容是png,修改后缀png,得到flag
misc3
bpg图片,不能直接查看,下载软件bellard来查看
1 |
|
misc4
下载下来6个txt文件
依此是png、jpg、bmp、gif、tif、riff
依此查看就能拼起来flag了,最后一个riff改成riff后缀不能直接查看,改成png也能正常看
图片篇(信息附加)
大佬总结的png图片解题流程
1.解压zip文件,用winhex打开misc10.png
2.判断文件格式是否篡改,检查png的文件头和文件尾,文件格式正常
PNG文件头(hex):89 50 4e 47 0d 0a 1a 0a
PNG文件尾(hex): 00 00 00 00 49 45 4E 44 AE 42 60 82
3.判断否有文件二进制合并,搜索png文件头8950,发现只有一个,未使用二进制合并文件
4.判断是否修改png图片宽高,使用TweakPNG或者pngcheck等crc校验工具,发现图片宽高正常。
5.用Stegsolve.jar查看图片是否有变换背景色及隐藏色块,发现一切正常
6.用binwalk,执行python -m binwalk -e misc10.png,发现有情况(如果熟悉zlib文件解析,也可自行写python脚本进行解析~)。
7.然后试试zsteg
misc5
用记事本方式打开就能看到flag
misc6
记事本方式打开,ctrl+f搜索
misc7
记事本方式打开,ctrl+f搜索
misc8
1 |
|
misc9
记事本方式打开,ctrl+f搜索
misc10
PNG文件头(hex):89 50 4e 47 0d 0a 1a 0a
PNG文件尾(hex): 00 00 00 00 49 45 4E 44 AE 42 60 82
binwalk、foremost、dd隐藏文件分离_formost工具分类_啾啾啾七的博客-CSDN博客
binwalk分离
1 |
|
查看分离的文件
misc11
tweakpng打开,发现crc正常,但第一个IDAT竟然比第二个IDAT长度小,可能被修改过了
右键delete掉第一个IDAT
misc12
工具:PNG Debugger 可以进行读取 PNG 图片的数据,检测各数据块中的 CRC 是否正确,在 Windows 下使用。
IDAT有固定的长度,正常的PNG图片只有最后一个IDAT块的长度是比其他的要短的。
使用的话,用 Windows 下的命令行,进入 Debug 文件夹,再执行命令。
1 |
|
1 |
|
好吧,没发现有IDAT数据crc错误,用tweakpng打开看看,IDAT大小并未是逐块铺满,可能有问题
30个IDAT块,一个一个依此删除,最后发现需要删除前8个
misc13
010editor打开,可以找到4个类似flag的字符(去掉两个字符中间的字符,再连起来就是flag),四个都试一下,发现第三个是正确的
1 |
|
但看来wp才知道,这道题想考的应该是文件里一共塞了四个flag,需要判断哪一个是正确的。根据题目提示,“flag位置”在文件末尾,找到文件末尾的IEND块,会发现这个块是14字节而非通常的12字节,也就是说这个块除了4位长度、4位标识和4位CRC,还带了两位数据(通常IEND块是不带数据的,但它也可以带,这应该就是本题知识点)。这两位数据就是正确flag开头那个c字符的字节序号。换句话说其实先找到IEND块里这个序号,然后去找对应的字节,一眼就能看到flag了。强行硬找的话一般会找到第一个,那个是假的;
misc14
binwalk -e可以看到有额外的照片,但是不知道为什么没有分离出来
可以自己在winhex里手动分离,从0x837到结尾导出为jpg文件,打开就是flag
也可以用dd命令
1 |
|
misc15
直接记事本打开就行了
misc16
binwalk -e分离一下下
misc17
zsteg可以检测PNG和BMP图片里的隐写数据。
目前,zsteg支持检测:
LSB steganography in PNG & BMP
zlib-compressed data
OpenStego
Camouflage 1.2.1
LSB with The Eratosthenes set
1 |
|
发现额外数据,提取看看
1 |
|
然后binwalk -e 1.txt就可以了
misc18
提示了flag在标题、作者、照相机和镜头型号里。
右键->属性->详细信息就可以了
当然可以用exiftool这个工具
1 |
|
windows下使用
1 |
|
misc19
flag在主机上的文档名里。
1 |
|
misc20
flag在评论里
1 |
|
乱码,在linux下查看就不会了,懒得再装了,在git bash上使用就不会了
1 |
|
misc21
flag在序号里。
1 |
|
看了wp是说把这四段数字转十六进制拼在一起包上ctfshow{}就是flag
但是序列号不是Serial Number吗
misc22
缩略图隐写,也叫thumbnail隐写
1 |
|
或者使用工具MagicEXIF打开
1 |
|
misc23
flag在时间里。
1 |
|
把四个时间转为时间戳再转hex得到flag
就是把History When : 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转成时间戳再转成16进制
misc41
H4ppy Apr1l F001’s D4y!
愚人节到了,一群笨蛋往南飞,一会儿排成S字,一会儿排成B字。
010editor打开搜索F001
1 |
|
图片篇(文件结构)
misc24
修改一下宽高,直接用PuzzleSlover一键操作FIX-BMP
misc25
依旧是改宽高,png,还是用工具就行了,方便多了,省的用脚本
misc26
爆破完还是可以看清楚flag的
1 |
|
0x25e去掉0x
1 |
|
misc27
jpg图片,用010把高度改大一点就好了
misc28
gif修改高度,把所有跟高度有关的都改高点
misc29
每一帧都改一下高度看看,再用Puzzlesolver逐帧分解,发现后面三张有flag
misc30
正确的宽度是950。,已知正确宽度可以爆破出正确的高
直接Puzzlsolver就行了
misc31
一样,高度是正确的,需要爆破出宽度,Puzzlesolver真是神器
这种类型的题目直接用它就行了,直接变成了工具题
misc32
一样已知高度是正确的,求宽度,这次是png类型
还是用工具
misc33
宽高都需要求,无所谓,直接Puzzlesolver
misc34
出题人狗急跳墙,把IHDR块的CRC也改了,但我们知道正确宽度肯定大于900
Puzzlesolver!省去了很多流程
misc35
jpg隐写,先改一下高,改到600可以看见字符了,再用脚本去爆破宽度
1 |
|
998以后可以看到flag
misc36
提示:正确的宽度在920-950之间
老样子,先改高(改到300就行了),再爆破宽
1 |
|
941.jpg
misc37
flag在某些帧里面,可以用Puzzlesolver逐帧分解,然后查看图片就行了
1 |
|
misc38
直接打开是个普通的png图片,但是如果用浏览器打开就会发现图片像gif那样会动
原来这个是apng图片
可以使用APNG Disassembler
来把每一帧分离出来,9、17、36、40
帧中藏有flag
misc39
gif图,但是所有帧都没有flag信息
结果这里是利用不同帧之间的间隔时间
来隐写的(这tm谁想的到)
利用linux下的工具identify
1 |
|
得到的一串36和37,考虑把37换成1、36换成0
,就得到长度为287
的二进制字符串,考虑每7
位转一个字符(正常是8
位一组),得到flag。
1 |
|
misc40
用APNG Disassembler分离apng
看一下txt内容
把229这个当ascii码解码看看
1 |
|
misc42
拿tweakpng打开
将IDAT块的长度转ascii码一下
misc43
题目提示:错误中隐藏着通往正确答案的道路
md拿tweakpng打开,一堆cc报错
将cc报错的 16 进制字符组合在一起,16 进制转字符得到 flag
misc44
题目描述:错误中还隐藏着坑
1 |
|
在 debug 文件夹下得到 1.txt 文本
将OK! 换成 1 ,把 FAILED 换成 0 ,组成一串二进制数字,再将那串二进制转字符。
用 python 脚本实现:
1 |
|
misc45
先把图片转化为 bmp ,再进行 binwalk 提取,得到 flag
在线网站:PNG转BMP - 免费在线将PNG文件转换成BMP (cdkm.com)
misc46
题目描述:你见过扶乩吗
考点:用gif 每一帧的偏移量作为坐标来画图
1 |
|
再从网上抄个脚本来用
1 |
|
misc47
没见过扶乩,那你知道笔仙吗
给了个有 563 帧不同的图片的png
有 fcTL 块,是帧控制块, 属于 PNG 规范中的辅助块,包含了当前帧的序列号、图像的宽高及水平垂直偏移量,帧播放时长和绘制方式(dispose_op 和 blend_op)等,每一帧都有一个 fcTL 块。
从十六进制中提取出偏移量的坐标,再通过坐标进行绘图。
再偷个脚本
1 |
|
misc48
附件的第(Di)七(Qi)题(Ti)中有提示。本题略脑洞,可跳过
010打开
可以看到,让我们count FF 然后minus 1
搜索关键字 FF ,可以看到紫色加深位置 FF ,并且有特别多块区域。比如开头的第一块紫色有 1 个 FF ,减去 1 ,得到第一个数字就是 0; 第二块紫色有 13 个 FF ,减去 1 得到数字 12 。依次类推,共统计前 32 块的数量。
最终得到 32 个数字:
1 |
|
转16进制得到
1 |
|
所以
1 |
|
misc49
它们一来就是十六种。本题略脑洞,可跳过
统计所有 的 FF E0 - FF EF 块,刚好共有 32 个,而 E 后面那一位就是 flag 中的字符,全部组合起来就是 flag :
1 |
|
真不会~~~
图片篇(颜色通道)
misc50
有时候视线也要放低一点
stegsolve打开,观察颜色通道
misc51
题目描述:你会数数吗。
puzzlesolve启动,
可以看到,相较于其他颜色,就2和3频次比较特别,将2和3提取出来看看
放大一点就能看到其中的flag
也可以用脚本提取:
1 |
|
misc52
题目描述:不会数数没关系,这次可以用眼睛瞪。
选择出现次数最少的十种即可
1 |
|
misc53
开始愉快的LSB部分。
zsteg直接梭
1 |
|
misc54
通过观察得知,隐写信息是竖向排列的,即按列(column
)
misc55
图片反了,stegsolve也没提取出什么
1 |
|
图片翻转回来,再去提取
R0、G0、B0通道均有隐写痕迹,提取数据
是个压缩包
保存下来解压得到flag