CTF-misc

  

复合隐写

本质:图片的本质其实是很长一段的码,我们在图片码中加入一点其他的东西,然后调整一下是不影响图片的观看和打开的,所以我们在图片码中加入一段flag就可以达到隐藏的效果

例1:找出这张图片隐藏的flag

这里我们直接使用Hex代码可视化工具WinHex打开图片,在图片末端可以得到flag

例2:找出这张图片的flag

老办法,先用WinHex打开,发现flag藏在代码末端

拓展知识:通过WinHex程序可以查看文件的文件头类型,并根据文件头类型来判断文件的类型

一般情况下,文件无法正常打开通常有两种原因:文件头部残缺和文件头部字段错误。对于文件头部残缺的情况,可以使用 WinHex 程序来添加相应的文件头信息。而对于头部字段错误的情况,可以尝试找到一个同类型的文件,将其作为替换文件来恢复文件的正常打开

一些隐写flag在二维码的图片我们可以使用工具

 

Binwalk工具

Binwalk是一个在Linux下用于分析和分离文件的工具,它能够快速判断文件是否由多个文件合并而成,并将其进行分离。如果分离成功,会在目标文件所在的目录下生成一个名为"文件名_extracted"的文件夹,里面存放着分离后的文件

用法:

分析文件:binwalk filename

分离文件:binwalk -e filename

 

Foremost

如果binwalk无法正确分离出文件,可以使用foremost,将目标文件复制到kali中,成功执行后,会在目标文件的文件目录下生成我们设置的目录,目录中会按文件类型分离出文件

用法:

foremost 文件名 –o 输出目录名

例1:解密图片里面的flag

这里我们就可以使用foremost来分离文件,kali默认是没有安装foremost的,这里我们先安装好foremost,再输入foremost QR_code.png -o solve.png

得到一个名字为solve.png的文件夹,里面就有我们需要的flag,但是这个密码文件是加密的,此时我们可以借助暴力破解工具ARCHPR来获取文件密码

打开文件,攻击类型改为掩码,暴力范围选择为所有数字,掩码输入四个?,表示密码范围在0000~9999

开始攻击,发现果然得到密码

成功得到flag

例2:

解密这个压缩文件

发现需要密码,我们直接使用暴力破解工具ARCHPR爆破一波,成功得到密码

解出一个base64加密的口令,我们再对其进行解密

成功得到flag!

 

修改图片大小

一般图片都是正常大小可进行查看,但是也会遇到图片损坏或者其他事件。然而图片大小如果存在问题,我们一样是可以对图片进行一个访问的,但是我们只能看到图片的一部分,使用这种方式对图片的其他部分进行一个隐藏

例:下图就是对图片大小进行了修改 导致我们不能看完整的图片信息

我们再次尝试使用WinHex打开图片,查看十六进制代码,发现宽高比对应的数值不同,我们尝试修改为同一个数值

再次打开图片,发现成功得到flag

 

base64和图片的转换

例:查看这个key.exe文件,key发现这其实是一个图片文件头,可以直接使用在线base64转图片工具来得到图片

直接解码得到一个二维码

扫一扫,得到key

base64转图片

 

文件属性备注隐藏flag

例:有时候,可能会隐藏有flag文件属性备注里面,这个图片,打开,没什么不妥

但是右键属性,打开详细信息,看到备注就出现了flag!

编写人:Kevin
2023.9.28