1.honeyview(图片查看器)
一般文件后缀名为bpg时,可用此软件打开查看。
2.伪加密文件+zip文件格式
伪加密就是在对应的加密标志位做修改,进而再打开文件时识被别为加密压缩包。上面在讲到文件格式的时候,提到RAR文件块的HEAD_FLAGS和ZIP的核心目录区的通用位标记,这两个就是伪加密的切入点。当拿到文件时,如果压缩文件是加密的,或文件头正常但缺无法正常解压,可先考虑是否为伪加密。通过将标志位修改为0便可解密压缩包。
思路:打开后发现是加密文件,用zip尝试发现没有加密,确定为伪加密文件,然后用010打开,将所有文件头的第9位和第10位改为0。
通常情况下,我们用到的ZIP文件格式如下:
压缩源文件数据区[文件头+文件数据+数据描述符]{此处可重复多次}+核心目录+目录结束标识
当压缩包中有多个文件时,就会有多个[文件头+文件数据+数据描述符]。
压缩源文件数据区记录着压缩的所有文件的内容信息,每个压缩文件都由文件头、文件数据、数据描述符三部分组成,在这个数据区中每一个压缩的源文件/目录都是一条记录。ZIP的文件头标识固定为0x50 4B 03 04,文件数据记录了相应压缩文件的数据,数据描述符仅在文件头中通用标记字段的第3bit设为1时才会出现。
核心目录区记录了压缩文件的目录信息,在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据。核心目录区的标记为0x 50 4B 01 02。其中若通用位标记(General purpose bit flag)置为1,则表示该文件加密。如有多个文件就会有多个通用位标记。
目录结束标识存在于整个归档包的结尾,用于标记压缩的目录数据的结束。核心目录结束标记0x50 4B 05 06 。
3.写题思路
一个jpg文件,打开无flag,然后用hex打开,在搜索中找ctf,即可得到flag。
4.kali
文件托到kali中,然后用binwalk打开文件(使用binwalk -e 文件名将隐藏文件分离出来),查看是否有隐藏的文件,若有,则用foremost分开即可。
5.tweakpng
TweakPNG是一个用于检查和修改PNG图像文件的低级实用程序。
例:提示:flag在另一张图里
大概猜测为多个IDAT数据,导致显示不出来flag,删除其他IDAT数据,只保留flag的即可得到flag.
6.PNG Debugger
可以进行读取 PNG 图片的数据,检测各数据块中的 CRC 是否正确,在 Windows 下使用。
其中 png 图片中有 IHDR、IDAT、IEND 三种数据块
//按上述格式打开文件
若用pngdebugger打开后发现无错误,可试试从第二个开始逐块删除IDAT块,直到出现flag。
7.binwalk文件提取
先使用binwalk -e
分离出来,使用dd命令提取出其中的图片(if是输入文件名称,of是输出文件名称,skip是偏移量,就是你要提取的文件的最前面的数字,bs=1)