misc图片隐写题解集合一
解题思路
所有文件共有
文本隐写
- 文件属性详细里面(win)
直接用文本编辑器打开
- 找末尾可能存在的奇怪编码
- 搜索某些关键字比如flag看看有没有什么奇怪的编码
- 其中包括
- 二进制类文件:kali下的strings指令
strings 文件路径 | grep 关键字
,win下的01eiditor或者之类的winhex编辑器 - unicode编码文件:win下改成txt后缀打开
复合文件隐写
- kali虚拟机下使用binwalk指令查看是否有复合文件隐写
- 使用binwalk -e来分离其中复合的文件(压缩包或者其他照片等等)
图片特有
.png
格式特有- 用16位编辑器修改IHDR后的宽高的数据(windows下,前8个十六进制是宽,后8个是高)(win)
- java环境下使用stegsolve.jar切换通道查看(kali)
- *java环境下使用stegsolve.jar导出不同通道的数值(LSB题型)(kali)
无法正常显示的图片
- 修改后缀,可能是其他格式文件
- *用16位编辑器打开查看文件头是不是有错误,有的话修改(win 01editor)
.doc .docx
文档- 特殊字符隐藏,开启方式使用wps(win)之类的
左上角文件-工具-选项-格式标记-隐藏文字
- 特殊字符隐藏,开启方式使用wps(win)之类的
有两张看起来一模一样的图片
- 隐水印使用:bwm,bwmforpy3的python项目解得到隐藏的水印(win)
- java环境下使用stegsolve.jar(kali)使用图片叠加如xor and等等
有密钥的图片包括pdf等等(参考2-5)
- SilentEye(win)
- wbStego4(win)
- java f5(kali)
音频隐写:此处不重点整理
- 使用au查看,根据间隔长短或者持续时间长短得到莫斯电码
带密码的音频
- 使用MP3steg(win)来解码:
Decode.exe -X -P 密码 文件路径
- 使用MP3steg(win)来解码:
例题
例题备份
之后的内容是例题的题解
2-4
原理说一下以rgb储存形式为例子,red,green,blue各自占八位二进制,代表各个通道的颜色深度,然后三原色叠加各自的深度然后得到你看到的一个像素点颜色,这时候如果你修改最低位的数据,人眼是很难区分的,聪明的人就利用这一点来隐信,即把最低位用于表示信息,虽然会使颜色信息有一定程度的丢失,但是人眼无法区分,而stegsolve主界面的左右箭头前三组就是仅显示某个通道某一位的值比如red plane 0就是只显示红色通道的0位,昨天那题很容易发现三个颜色的通道的0位有杂条,然后就用stegsolve提取出三色的0就可以得到qrcode了扫了之后就是答案。具体怎么提取对应位的可以使用stegsolve-data extract勾选有问题的r,g,b三个通道的0位然后save bin
导出成png文件即可。
2-5
打开压缩包后有四个文件,第一个文件使用txt打开找到末尾的unicode码,转成字符为
SilentEye and wbStego4 and f5 key:handsome
代表使用SilentEye and wbStego4 and f5
这三个工具,并且密钥是handsome
依次使用这三个工具解对应的三个文件
第二个文件使用SilentEye
解得1bc29b36f
第三个pdf文件使用wbStego4.3open
可以解得623ba82aaf
第四个文件使用f5隐写项目
需要java环境我是在kali下运行的
git clone https://github.com/matthewgao/F5-steganography
默认保存到你的主文件夹- 我的是
/home/poilzero/
- 我的是
然后你cd进入这个文件夹内
- 我的是
cd /home/poilzero/F5-steganography/
- 我的是
按照格式运行
java Extract 文件路径.jpg -p handsome
- 我的是
java Extract 4.jpg -p handsome
(第四张图片要提前放到这个文件夹)
- 我的是
解得6724fd3b16718
解得密码三个部分拼接后得到答案
flag{1bc29b36f623ba82aaf6724fd3b16718}
3-1
- 我使用
Adobe PR
打开逐帧查看得到两个字符串 - 使用base64解密发现是flag前后两半
没重新做截图或者保存字符串,思路很容易想到
3-2
打开docx,打勾左上角文件-工具-选项-格式标记-隐藏文字
在文本底部发现
发现日期全是2020.1.16
,使用kali下的binwalk查询发现有文件隐藏其中,使用binwalk -e分离后的文件夹中有一个压缩包47F0.rar
有密码,使用日期解压试试(注意使用unrar e -p 文件
指令,kali不自带含密码的解压软件)
得到两张照片
两张图片一样使用隐水印解得一张图片就是答案了。注意这个加密算法使用的是python3原生版的,需要使用bwmforpy3.py
文件。
项目地址:https://github.com/chishaxie/BlindWaterMark
也就是
flag{Let_Us_Timi_T0gether}
3-3 音频隐写
音频隐写一般是MP3STEG,所以需要密钥,尝试 txt 中搜索无果后,使用kali下的strings指令搜索找到密钥
└─$ strings out.mp3 | grep pass
pass:goaway
即goaway
然后使用MP3STEG解得flag(Decode.exe -X -P 密码 文件路径
)
flag{027166d2b67fffc4e2471ccabebadcc2}
3-4
- 根据线索去google搜了一张一模一样的图作为组合密钥。
- 两张图用stegsolve结合在
SUB(R,G,B separate)
模式下得到答案
按照总结的思路时候stegsolve两张图拼接,先用stegsolve打开一张图片,然后Analyse-Image Combiner
选择另一张合并,切换模式在SUB(R,G,B separate)
模式下即可得到
flag{326577fbe6d73973bd67437829bf9301}
3-5
- 两张图用stegsolve结合在
XOR
模式下得到答案
先用stegsolve打开一张图片,然后Analyse-Image Combiner
选择另一张合并,切换模式在xor
模式下即可得到二维码,然后用手机扫一扫即可得到
flag{f0dadc73bf5052f4bd53146aa51ec124}