知识点
1.如何更改后缀名
ctf中有一些打开是乱码文件 更改后缀名之后 才能找到我们想要的信息
第一种方法:在kali liunx里面使用file命令
第二种方法
使用010或者是winhex打开文件 查看文件头
使用场景:windows下通过文件头信息判断文件类型
PNG
1)文件格式
•头识标,89 50 4E 47 0D 0A 1A 0A
•宽度位0x10-0x13,不可随意更改,需根据CRC值修改
•高度位0x14-0x17,可随便改
•CRC校验位0x1D-0x20,CRC是对文件数据块的校验,修改数据块会使校验失败,文件无法正常显示
2)高度显示不完整
3)宽度显示不完整
需根据爆破文件的CRC值修改宽度,否则会打开文件失败
4)LSB隐写
使用工具stegsolve或者是kali看
•用stegsolve查看
JPG
1)文件格式
•头识标,FF D8
•尾识标,FF D9
2)宽度高度的修改
base64源码转图片
GIF
1)文件格式
•头标识,47 49 46 38(GIF8)
2)flag藏在某一帧中,用stegsolve查看
2.文件分离
在kali linux里面两种工具
Binwalk工具
Binwalk是Linux下用来分析和分离文件的工具,可以快速分辨文件是否由多个文件合并而成,并将文件进行分离。如果分离成功会在目标文件的目录。
同目录下生成一个形如_ 文件名_ extracted的文件目录,目录中有分离后的文件。
用法:
分析文件: binwalk filename
分离文件: binwalk -e filename
foremost
如果binwalk无法正确分离出文件,可以使用foremost,将目标文件复制到kali中,成功执行后,会在目标文件的文件目录下生成我们设置的目录,目录中会按文件类型分离出文件。
用法:
foremost 文件名 -o 输出目录
3.文件内容隐写
文件内容隐写,就是直接将KEY以十六进制的形式写在文件中,,通常在文件的开头或结尾部分,分析时通常重点观察文件开头和结尾部分。如果在文件中间部分,通常搜索关键字KEY或者flag来查找隐藏内容。
使用场景:windows下,搜索隐写的文件内容。
第一种工具 Winhex/010Editor
通常将要识别的文件拖入winhex中,查找具有关键字或明显与文件内容不和谐的部分,通常优先观察文件首部和尾部,搜索flag或key等关键字,最后拖动滚轮寻找。
第二种工具 Notepad++
使用notepad++打开文件,查看文件头尾是否有含有关键字的字符串,搜索flag或key等关键字,最后拖动滚轮寻找。
另外通过安装插件HEX-Editor可以实现winhex的功能。
4.伪加密
zip伪加密是在文件头的加密标记位做修改,进而再打开文件时识被别为加密压缩包未加密:
文件头中的全局方式位标记为00 00
目录中源文件的全局方式位标记为00 00
伪加密:
文件头中的全局方式位标记为00 00
目录中源文件的全局方式位标记为09 00
真加密:
文件头中的全局方式位标记为09 00
目录中源文件的全局方式位标记为09 00
ps:也不一定要09 00或00 00,只要是奇数都视为加密,而偶数则视为未加密
#zip被真加密时 使用工具ARCHPR进行爆破
5.基本方法
1)使用010或者winhex打开观察文件头 看是否有错误
2)使用010或者winhex打开后查找flag
3)使用kali linux查找是否有隐藏文件 若有 进行分离
4)使用Tweak PNG进行查看IDAT
图片有2个IDAT块,使用tweakpng工具,尝试删除第一个IDAT块的数据,另存为后打开新图片。
图片有很多个IDAT块,先使用PNGDebugger跑一下,看看有没有出错的IDAT块,没有就慢慢试一个一个删除看看。
实例
misc2
打开.txt发现是乱码 用010打开 发现png开头 更改后缀名
misc3
后缀名为.bpn 用honey view打开 即得出flag
misc4
受前面的提示文件打开后是乱码 更改后缀名为.png 1-6即为flag
misc5-7
使用010或者winhex打开,隐写,用CTRL+F查找flag 即可得到flag
misc8
这里面包含了两个文件
使用Linux里面的binwalk和foremost可以分离 即可得出flag
misc9
同样是隐写 使用CTRL+F查找flag 即可得出
misc10
首先在010中查找相应的flag 没找到
接着在kali linux里面使用binwalk或者foremost 查找隐藏文件
misc11
这个图有两个IDAT块,而且没有隐写其他的数据,试着把第一个IDAT块的数据删除,然后另存为一张新图片,这个过程可以手动操作,也可以使用tweakpng工具。
使用TweakPNG打开图片 删除第二个数据 再次打开图片即可得到flag
misc12
使用Tweak PNG删除IDAT前八项再次打开即可得到flag
参考资料:
https://blog.csdn.net/orchid_sea/article/details/128880176