系列文章目录

第一篇文章:
CTF Crypto简单题学习思路总结(持续更新)

文章目录

  • 系列文章目录
  • 前言
  • 一、JPG类隐写
    • 1.1 JPG文件末尾添加字符串
    • 1.2 JPG文件中添加字符串
    • 1.3 图片文件分离
    • 1.4 JSteg&&JPHide&&OutGuess&&F5
  • 二、PNG类隐写
    • 2.1 IHDR隐写
    • 2.2 IDAT隐写
  • 三、GIF类隐写
    • 3.1 基于时间轴的隐写
    • 3.2 基于空间轴的隐写
    • 3.3 Fireworks图层隐写
  • 四、其他类别隐写
    • 4.1 双图对比
    • 4.2 LSB隐写
    • 4.3 EXIF隐写

前言

在MISC里面图片隐写也是非常常见的题,有简单题,也有难题,但一般不会只出现图片隐写,有时候会结合密码学等出为综合题,在这我就简单记录一下我遇到的图片隐写的简单题的解题方法和步骤,便于我自己回忆复习,要是有错误,还请各位大佬们指教,若是有侵犯您的权利,联系我我会删除这篇文章

一、JPG类隐写

1.1 JPG文件末尾添加字符串

这个比较难联想,估计得变成类似判断文件隐写的三板斧的习惯。解决办法也简单,将JPG文件放入WinHex或者010Editor里面,找到JPG的固定文件尾“FF D9”,然后看有没有其他字符。

上图明显还有下一步,这里的一个“=”暴露了这是一个base64

1.2 JPG文件中添加字符串

1.1和1.2其实都是利用了JPG的结构中可以放置一些冗余字符来达到隐写的目的,JPG文件结构如下:

SOI:FF D8 //图片起始
APP0:0xFF E0 //标记号
APP0 SIZE:1D 23 //当前标记的长度
JEIF Flag:JFIF //JFIF标识
VERSION://版本号
ATTRIBUTION://长宽、DPI等信息
DQT:0xFFDB //Define Quantization Table,定义量化表
SOF0:0xFFC0 //Start of Frame,帧图像开始
DHT:0xFFC4 //Define Huffman Table,定义哈夫曼表
SOS:0xFFDA //Start of Scan,扫描开始 12字节
压缩数据
EOI:FF D9 //图片结束
手敲的我眼都花了

标记码的高字节固定为0xFF,标记码之间有冗余字节。如果在标记码之间插入隐写,不会影响图片打开(这是图片隐写的一个常见限制,因为一旦无法正常打开就相当于提示做题的人图片的文件结构做了手脚,比如后面的PNG隐写中的一个改高度就会在Kali中无法正常打开PNG而露馅),能够达到隐藏数据的效果。
但需要注意的是,并不是所有的标记码之间都能隐写数据,FF C0作为帧图像开始的地方,如果在这后面隐写,可能会破坏图像的帧图像,导致图片无法正常打开。

这种明文的flag有一个偷懒的办法,在010editor里面直接CTRL+F搜索flag或key,但是要是像1.1里面加密后搜索大法就不行了

1.3 图片文件分离

其实这是一个综合类的题,既可以用ZIP当载体,也可以用JPG当载体。这里一个文件分离三板斧(思维定势不要学啊):
(1)首先将文件放到Kali里面,然后用file指令查看文件类型,若是文件损坏则修补文件头之类的修复文件

(2)binwalk:直接在终端binwalk+文件名,要是简单的话(PNG另说啊,PNG会识别出一个Zlib文件,这个也有点东西),binwalk会直接返回文件是有几个文件拼接的

(3)foremost:foremost 文件名 -o 输出目录直接拆分拼接文件,解决完成


当然这里还可以继续接zip爆破,那就是后话了
当然上述只是签到题这样的简单题适用,其他复杂的题可能会加一些其他的步骤

1.4 JSteg&&JPHide&&OutGuess&&F5

为什么把这几个隐写放在一块,是因为有一个比较方便的工具Stegdetect,Stegdetect可以探测上述几种隐写方式,在Windows下输入指令即可探测,若是探测不出来,可适当增加敏感度

探测到JPHide隐写,可以使用JPHSwin解JPHide,但是这个难点就是在找隐写的密码。

———————————————————2022.11.3 10:56更新——————————————————
有意思的是,Stegdetect似乎加大灵敏度之后会误判各种jpg为JPHide隐写,所以在题目没有提示密码前谨慎对待检测结果

二、PNG类隐写

2.1 IHDR隐写

这个比较好识别,当在Windows下png图片可以被打开,但是在Kali下会提示CRC错误,在010Editor里面也会提示CRC32错误,这是提示了我们其实这张PNG图片修改了高度,一般还原PNG高度之后就可以直接看到FLAG了,重点就是如何获取正确的CRC或者获得正确的高度
下面可以用脚本通过已有的CRC32值爆破原本的图片高度值:

在这里插入代码片

获得正确的高度之后,在WinHex或010Eidtor修改对应的位置就可以得到正确高度的图片就可以看到FLAG了

2.2 IDAT隐写

这个比较少见,PNG的数据压缩后存储到IDAT块,并且只有存满才能存到下一个IDAT块,这里就有可能看到猫腻,就是有IDAT数据块没有存满,但是出现了数据块后面的新块,之后对没有存满的IDAT块后的那一个IDAT块进行Zlib解压缩,之后在对数据进行其他的处理

三、GIF类隐写

3.1 基于时间轴的隐写

3.2 基于空间轴的隐写

3.3 Fireworks图层隐写

四、其他类别隐写

4.1 双图对比

这个识别的特征是题目给出了两张差不多一样的图,这时候要考虑对比一下两图,这时候可以使用软件或者脚本
—————————————————2022.11.3 7:08更新——————————————————
我估计我写的太简单了,我看到有百度搜索双图对比来看这篇文章的,所以应该让他们失望了,我这里稍微写一下为啥之前的文章双图对比写的这么简短,因为是我看的那本入门书双图对比的题太复杂了,不是简单的两张图叠加,而是叠加后再提出文件解压要写脚本bulabula之类的,好烦的说,这次在bugku看题的时候遇到了一个比较适合的题,我就在这稍微写一些步骤
这个题难点不在双图对比,而是提取双图,因此那部分我就不详细描述了,看详细描述可以看我写的bugku MISC的简单思路
首先我们看到分解图片后产生了两张差不多的图片,因此考虑双图对比

然后打开图片隐写神器Stegsolve,然后打开第一张图片(PS:我在b站听课时曾听到过图片叠放顺序不同会导致结果不同,可能会看不到有效信息,所以要注意图片打开顺序)

然后点击Analysis->Image Combiner

然后打开第二张图片


我们看到软件左上角提示了两张图片的叠加方式,而软件下方界面有左右两个按键,那自然就是快活的遍历啦

这是最简单的双图,还有更复杂的等我稍微有时间再稍微介绍

4.2 LSB隐写

这个多用在一些无损压缩或无压缩的图片上,比如PNG、BMP,在这里,PNG可以使用stegsolve

然后点击<>切换模式看是否存在线索

然后在Red发现二维码
当然stegsolve还有一种解题方式

上图中我们切换了所有模式并没有发现有用的信息,于是使用StegSolve中的Data Extract模块查看RGB的通道,看其16进制和ASCII是否存在线索


这里其实看出题人是否想要题目变难,如果仅仅是将flag隐藏在LSB之中,那么我们可以使用Kali中的zsteg偷懒直接分析看看是否存在flag,但是出题人要是出的难的话则需要stegsolve提取16进制转换成文件得到下一步线索,比如上面这个题,我们多试RGB几次就可以发现

这里的“PK”是典型的压缩文件头,因此我们需要提取出十六进制文件然后保存为ZIP
在Kali中使用zsteg如下图:

4.3 EXIF隐写

这个就很隐蔽了,因为EXIF没什么特征识别,只能培养拿到图片看一下属性的习惯

当然有一些出题人不会简单的在属性中写上FLAG,我们可以利用exiftool工具查看

CTF MISC图片隐写简单题学习思路总结(持续更新)相关推荐

  1. CTF MISCword隐写简单题学习思路总结(大概率不会持续更新)

    系列文章目录 好复杂的说,懒得列了说 文章目录 系列文章目录 前言 一.反白 二.word自带隐藏字符 三.word文件本质 四.word字体隐写 前言 前几天参加了HNCTF,其中遇到了不少题可以检 ...

  2. ctf misc 图片隐写(所见非真)

    第一次写misc题目走好多坑记录一下解题思路了(坑多) 得到题目 一个压缩包还有一个照片  用Winhex打开它 在文件的最后发现了flag.txt,要把它提取出来 把该图片文件拉入kali的主文件夹 ...

  3. CTF Crypto简单题学习思路总结(持续更新)

    系列文章目录 本系列开篇文章,就没有链接了. 文章目录 系列文章目录 前言 一.编码/解码 1.1 BrainFuck密码&ook!密码 1.2 URL编码&HTML实体编码 1.3 ...

  4. CTF MISC压缩包简单题学习思路总结(持续更新)

    系列文章目录 太复杂了,已经懒得写目录了,怎么我自己分了这么多篇CTF简单题思路总结啊,我真是太菜了,各位大佬有兴趣可以去分类专栏看一看 文章目录 系列文章目录 前言 一.压缩包识别/修复 二.压缩包 ...

  5. 记某次CTF的图片隐写题✨

    简单的Misc

  6. CTF MISC在我眼里各种奇奇怪怪的题学习思路总结(持续更新)

    系列文章目录 MISC:图片隐写简单题学习思路总结(持续更新) CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.二维码 1.1 QR码 1.2 Maxicode码 ...

  7. CTF 图片隐写之修改图片高宽

                                                 CTF WriteUp                                            ...

  8. 图片隐写 安恒ctf_图片隐写 安恒ctf_CTF中图片隐写的一些整理总结

    对历年来国内外CTF中常见的题型图片隐写的一些总结,本文长期更新,及时补充新的题型. 对历年来国内外CTF中常见的题型图片隐写的一些总结 赛题 XMAN-qualifiers-2017 : Misc/ ...

  9. 图片隐写 安恒ctf_CTF中图片隐写的一些整理总结

    对历年来国内外CTF中常见的题型图片隐写的一些总结,本文长期更新,及时补充新的题型. 对历年来国内外CTF中常见的题型图片隐写的一些总结 赛题 XMAN-qualifiers-2017 : Misc/ ...

最新文章

  1. python爬虫换电脑不能运行_python爬虫程序运行失败,求原因
  2. 9月20华为鸿蒙,荣耀先行!华为智慧屏9月发布:搭鸿蒙系统和自研芯片
  3. ExoPlayer 开发者指导
  4. Python chardet 字符编码判断
  5. 用友BQ商业智能平台——图表功能
  6. 关于计算机网络技术专业的演讲稿,有关互联网的演讲稿
  7. 计算机操作系统第4版期末复习
  8. 【杂学】ipv4无internet访问权限
  9. FPGA智能网卡功能剖析
  10. mysql translate 函数_Oracle字符串函数-Translate()总结
  11. 高压开关柜无线测温系统(高压开关柜在线监测系统应用案例)
  12. 把Python代码封装成exe(windows的可执行程序)
  13. 前端基础之CSS盒子模型
  14. 牧场物语gb模拟器JAVA_3DS GBC模拟器+GB/GBC游戏合集下载
  15. 6个usb口服务器无响应,USB插口无反应怎么办?USB接口不能用解决办法
  16. 近10年的网盘发展史(那些年你的网盘存了多少资料)
  17. outlook 2007 通讯录分组导出导入
  18. 动画旋转360度位置不变
  19. 传统客服压力山大,如何应用智能客服打造直击痛点的解决方案?
  20. 对话框窗口过程与普通窗口过程的区别

热门文章

  1. 由P8架构师整理,283页的Java核心资料pdf文档,学会后月薪4W
  2. 太魔人共祝四周年生日快乐!
  3. 关于AudioEffect使用过程中的构造以及处理流程遇到的几个问题
  4. java中流转pdf_Java中的PDX到PDF转换器
  5. 第二章——keil5修改工程名字
  6. tomcat 7 最新版本 apache-tomcat-7.0.109
  7. 举例说明层次分析的三大原则_《搞定》一个境界、两个维度、三大原则让你轻松搞定繁重的事务...
  8. 2-SAT问题的一种解法(简明易懂)
  9. 钉钉群机器人定时发送消息并@所有人
  10. 『TypeScript』泛型