CTF--隐写术
CTF MISC简单介绍
MISC,就是杂项,简单来说就是利用工具解密,算是CTF中最有意思的一个分支了
MISC中比较多出现的题目呢
图片的,文件的相关隐写
伪加密
亦或是将文件隐藏再docx,pdf中的各个位置,
这些都是存在的(索引你平时看的文件中可能存在另一个文件(雾))
图片隐写
图片隐写呢可以根据图种分为几大类
JPG图片隐写,PNG图片隐写,GIF图片隐写以及其他类的图片隐写
但是都差不多
改文件
首先保证人手一个010editor或者winhex
打开文件发现文件头是1
FF D8 FF E1
说明是一个JPG文件(jpeg也是JPG
图片隐写的三板斧呢,
第一,看文件头
判断是什么类型的图片,然后可以用010的模板中的模板脚本辅助查找
第二,看文件尾部
正常文件结尾是固定的,但是有时候尾部会缀点东西,因为图片已经结束了所以
不影响正常文件的显示
第三,文件中部
会有一些人把明文信息直接丢到文件中的,一般会有提示符(不然谁费事巴拉的去找
还有一种就是图片更改宽高
16进制表中,
【固定】前面8个字节是文件头部信息,只需要看前面查表1
FF D8 FF E1 14 2E 45 78
【固定】再有4个字节是数据段长度1
69 66 00 00
【固定】前面4个字节是文件头数据块的表示1
4D 4D 00 2A
(可变)13个字节
前面4个表示宽1
00 00 00 08
中间四个表示高1
00 0C 01 00
后面五个依次是Bit depth、ColorType、Compression method、Filter method、Interlace method
(了解都不需要)
伪加密
虽然不是图片隐写但还是说一下把反正都要用010
文件是加密的但是解压不行,说明可能是伪加密
1 | 压缩源文件数据区: |
LSB
LSB最低有效位隐写
LSB原理就是利用古人言识别不出来的差异信息来进行加密
举个例子
BUU-LSB
QR search能用就用,用不了就用网站
盲水印
通常是将图片进行离散余弦、小波或者傅里叶变换,得到图片的频谱信息,
再将水印的编码信息叠加到图片的频谱上,
然后再进行一次逆变换,
生成的图片就带有几乎无法检测、但又可以确切还原出来的盲水印了
1 | python bwm.py decode file1 file2 outfile |
盲水印有个傅里叶盲水印的
例题
攻防世界 misc 4-1
二维码
二维码是从右向左填充的数据,纠错码会在数据段之后
binwalk和foremost
binwalk查看图片信息
可以快速知道是不是由多个文件合并而成并将其分离
1 | 分析 |
或者你直接用foremost分离文件
1 | foremost filename -o output |
IDAT块隐写
图像数据块 IDAT(image data chunk):它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。IDAT 块只有当上一个块充满时,才会继续一个新的块。
(找了一圈没找到一个IDAT的,找了个图你们看看明白就好
图片隐写还有很多,像素点的,二维码的,gif的,这个其实就纯看脑洞
docx和ppt隐写
docx说白了也是一种zip形式,我们可以改成zip然后再进行寻找就能找到
字体的隐藏
书签
解压以后图片的设置
音频隐写
音频隐写主要使用的是Audacity
看波形,看频率,经常在这里放摩斯密码或者是声音中参杂着
这个题呢就是典型的波形,放大到最大看前面你的就找到了