附加式图片隐写之直接附加字符串 应对策略
【乌镇峰会种图】
BUGKU【这是一张单纯的图片】
http://ctf.bugku.com/challenges/detail/id/2.html
针对CTF比赛的MISC(杂项)题目,隐写术是很重要的题型,其中针对图片的隐写十分常见。下面将进行该技术的各种方法的研究。
首先是附加式图片隐写,一是直接附加字符串,二是图种的形式出现。
下面以其中一题为例
字符串一般附加在文件的后面,因为如果图片附加在中间,有可能破坏了图片的信息,如果字符串附加在图片的头部位置,又破坏了文件头,可能导致图片无法识别。
查看这个字符串有很多方法,这里给出两种
Strings工具
下载与安装可以参考https://blog.csdn.net/xcyja/article/details/116242761
安装之后,为了更方便的用cmd调用,我们需要将其添加到系统变量
打开编辑系统环境变量
单机环境变量
双击下方的Path值
新建,将工具所在文件路径加入
这样就可以方便的使用了
我们在图片所在文件夹shift+右击,在此处打开命令窗口
对图片进行解析
可以在最后得到flag
010Editor工具
十六进制编辑器010Editor确实非常好用,我建议在果核剥壳下载
https://www.ghxi.com/010editor.html
将图片用工具打开
可以直接在最后找到flag
当然有的时候题目可能稍微转一个弯,将最后的flag进行base64或者unicode加密,我们仅需要使用工具将其解密即可
下面给出一个例题
链接:https://pan.baidu.com/s/1xBzhkVEYSbVcHS3u4x_WGw
提取码:yxh1
--来自百度网盘超级会员V2的分享
对其解码,最后产生了base64加密的字符串
D:\学习\大三下\网络功放技术\MISC\附加式图片隐写>python
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:43:08) [MSC v.1926 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a='ZmxhZ3t3ZWxjb21lX3RvX3hpYW56aGl9'
>>> import base64
>>> base64.b64decode(a)
b'flag{welcome_to_xianzhi}'
>>>