• [ CTF 学习 ] CTF 中的隐写集合 —— 图片隐写术


    🍬博主介绍

    👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
    ✨主攻领域:【渗透领域】【数据通信】【通讯安全】【web安全】【面试分析】
    🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
    🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
    🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

    目录

    一、图种+ZIP

    1.得到携带隐藏文件的图片

    2.检索图片文件中隐藏的其他文件

    3.分离图片文件中隐藏的其他文件

    1.Foremost 工具分离隐藏的其他文件

    2.更改后缀名为zip然后解压方式分离隐藏的其他文件

    二、LSB隐写

    LSB隐写介绍

    示例

    三、文件格式缺失&GIF隐写

    把图片放入010editor进行修复

    把图片放入Namo_GIF_gr或者Stegsolve发现存在隐藏信息

    得到隐写信息


    一、图种+ZIP

    1.得到携带隐藏文件的图片

    所谓图种,就是先把要想隐藏的东西用zip打包压缩,然后再跟一张正常的图片结合起来,达到隐藏信息的目的。

    在这里我准备了一个zip.zip的压缩包和111000.png的图片。zip里面的内容为zip.png

    然后在windows命令窗口输入:copy/b 111000.png + zip.zip output.png

    得到一张名为output.png的图片文件,可以正常打开

    2.检索图片文件中隐藏的其他文件

    binwalk工具可以根据检索匹配文件头的原理轻松地检索图片文件中隐藏的其他文件,还是以这张图片为例,在kali linux里输入命令 binwalk 然后将output.png拖入命令窗口回车执行即可 

    直接输入:binwalk ‘要查看的文件路径’

    3.分离图片文件中隐藏的其他文件

    利用Linux下的foremost工具可以将output.png里隐藏的zip文件分离出来, 在kali linux命令行里输入foremost,然后将output.png拖入命令窗口回车执行即可分离,默认的输出文件夹为output,在这个文件夹中可以找到分离出的zip 。

    1.Foremost 工具分离隐藏的其他文件

    Foremost 没有发现,但是可以安装他:y

     安装完成,直接输入foremost ‘要分离的文件路径’

    自动生成output文件夹

     

    拖到windows桌面看一下内容 

     

    成功分离出来

    2.更改后缀名为zip然后解压方式分离隐藏的其他文件

    当然,也还有一种更简单粗暴的方式:直接把图片的后缀改为.zip,然后解压即可(这种方法虽然简单快速,但如果隐写了多个文件时可能会失败)

    先将output图片后缀名改为zip,得到output.zip文件

     然后进行解压,解压就得到了我们压缩文件zip.zip的内容,zip.png

     

     成功分离出来。

    二、LSB隐写

    LSB隐写介绍

    LSB隐写,也就是最低有效位 (Least Significant Bit)隐写。

    图片中的像数一般是由三种颜色组成,即三原色,由这三种原色可以组成其他各种颜色,例如在PNG图片的储存中,每个颜色会有8bit,LSB隐写就是修改了像数中的最低的1bit,写入加密信息,而人眼无法注意到前后的变化。

    示例

    图片链接:

    https://pan.baidu.com/s/1aQaZj0UH2Xk_rGiYWf6lzg?pwd=30e2

    此图看起只是六只环保色猪头,但是其中包含了一张隐藏的二维码,我们可以通过工具Stegsolve.jar打开此图

    Stegsolve.jar工具地址:

    https://download.csdn.net/download/qq_51577576/86246245

    然后通过下方的按钮切换到Gray bits,可以看到左上角出现了隐写在该通道的二维码,扫描二维码即可得到flag

    csdn好像不能发这中二维码图,这里就把图片删除了

    三、文件格式缺失&GIF隐写

    图片链接:

    1. https://download.csdn.net/download/qq_51577576/86246267
    2. https://pan.baidu.com/s/1Mn7k0FYfmw-x5wuZYFbUXw?pwd=h6zh 

    下图是一张名为“此为gif图片.gif”的文件,打开发现了报错。

    把图片放入010editor进行修复

    图片原始不可识别文件,根据文件名“此为gif图片.gif”猜想是gif图片

    直接打开图片打不开

     

    把图片扔到010editor中,

    010editor工具地址:

    https://download.csdn.net/download/qq_51577576/86246276

    在CTF中有的时候会需要我们去修复图片,这对我们对于图片的文件结构要有了解。找到gif的文件格式,然后对照这个破损的文件对其进行修复。

    找一张正常的gif图片拖入010editor

    我们会发现和普通的GIF图片不一样,头部缺少了东西,在对比一些文档,会发现是少了GIF8。

    我们手动修复一下可以正常打开。(插入GIF8,保存)

    把图片放入Namo_GIF_gr或者Stegsolve发现存在隐藏信息

    发现一串数字和字母叠加,想办法分离出来。

    依次将每一帧的第254位色位调至一个颜色,保存。就可以查看到每帧闪过的字母。

    最后拼接起来进行base64解码,得到flag。

    可以使用gif小工具 Namo_GIF_gr 修改第254bit色位

    Namo_GIF_gr工具地址:

    https://download.csdn.net/download/qq_51577576/86246260

    得到隐写信息

    八帧的信息组合在一起:

    PASSWORDisY2F0Y2hfdGhlX2R5bmFtaWNfZmxhZ19pc19xdW10ZV9zaW1wbGU=

    很明显这是一个Base64编码,然后拿去解码得到catch_the_dynamic_flag_is_qumte_simple

    运用载体隐藏信息数据在隐藏的时候,我们常常是需要先分析是数据隐藏在哪里,也就是他在利用是什么做载体,之后才可以进一步的分析是加密或编码的。我们要对一个图片的格式要有了解,才能知道哪些地方是可疑的,哪些是会有冗余的成分在可以隐藏起信息的

  • 相关阅读:
    CentOS 7.4安装Nginx 1.14.0
    PyTorch学习笔记-常用函数与数据加载
    2022“杭电杯”中国大学生算法设计超级联赛(4)
    同源多页面实时通信之BroadcastChannel实现及简单封装
    使用国内镜像站点下载Git安装包
    pdf转png工具类
    解决 npm install 报错的问题
    1.EdgeX实战 Ubuntu18.04搭建运行环境
    一个函数如何实现return好几个返回值(借鉴学习前辈的文章,链接放文章里了)
    【STM32】TF卡&&FTA32文件系统
  • 原文地址:https://blog.csdn.net/qq_51577576/article/details/125877980