用户
搜索
  • TA的每日心情
    开心
    2018-9-11 11:32
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]经常看看I

    i春秋-核心白帽

    Rank: 4

    118

    主题

    147

    帖子

    1610

    魔法币
    收听
    0
    粉丝
    34
    注册时间
    2016-6-6
    发表于 2019-10-8 09:57:50 0401

    斗哥上次和大家介绍过CTF图片分析的附加式图片隐写和基于文件结构的图片隐写两种图片隐写方式。详见CTF解题技能之图片分析(一)。今天斗哥继续和大家分享图片隐写术,今天分享的内容主要是基于LSB原理的图片隐写。

    原理介绍

    LSB(LeastSignificant Bits)算法:将秘密信息嵌入到载体图像像素值的最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小。LSB图片隐写就是基于LSB算法的图片隐写术,在CTF中也是我们经常会遇到的基础杂项题型。

    图像一般由像素组成,而每个像素由3个颜色组成,也就是我们常说的RGB三原色:红绿蓝。每个颜色占8位,取值范围为0x00~0xFF,也就是256种颜色,所以一共有256³种颜色,也就是16777216种颜色,而人类眼睛可识别的颜色约有1000万种,因此还有6777216种颜色,人类是区分不出来的。

    以下图为例,左半部分是RGB(255,0,0),右半部分是RGB(255,0,1)。用肉眼我们很难区分这两个颜色的区别。

    区别.webp.jpg


    因此我们就可以利用这一情况修改最低位中的信息,实现信息的隐写,而人类的眼睛并不会发现这前后的变化,每个像素可以携带3bit的信息。

    为了让大家更好的理解,我举个栗子哇。比如说我要将’a’隐藏到图片中,先将需要隐藏的字符转换为二进制,然后再将原始图像像素值由十进制转为二进制,将需要隐藏的信息的每一比特信息替换原始图像相对应的最低有效位,将得到的含秘密信息的二进制数据转换为十进制像素值,从而获得含秘密信息的图像。

    图像 1.webp.jpg


    图像 2.webp.jpg

    由于水印信息嵌入的位置是LSB,为了满足水印的不可见性,允许嵌入的水印强度不可能太高。然而针对空域的各种处理,如游程编码前的预处理,会对不显著分量进行一定的压缩,所以LSB算法对这些操作很敏感。因此LSB算法最初是用于脆弱性水印的。——百度百科

    通常来说LSB图片隐写术只能用于无压缩或者无损压缩的文件格式中。如果图像是jpg图片的话,就没办法是用LSB隐写,因为jpg图片对像素进行了有损压缩,我们修改的信息会在压缩过程中被破坏。而png图片采用的是无损压缩,修改的信息就能得到正确的表达,不至于丢失。bmp图片把所有的像素都按照原样储存,没有进行压缩,因此bmp图片也是可以进行lsb隐写。

    最后,斗哥来介绍一下图像通道的概念。一幅完整的图像,红色绿色蓝色三个通道缺一不可。即使图像中看起来没有蓝色,只能说蓝色光的亮度均为0或者各像素值的红色和绿色通道不全为0,但不能说没有蓝色通道存在。“存在、亮度为零”和“不存在”是两个不同的概念。一幅图像,如果关闭了红色通道,那么图像就偏青色。如果关闭了绿色通道,那么图像就偏洋红色。如果关闭了蓝色通道,那么图像就偏黄色。除了这三个颜色通道,还有一个Alpha通道,是一个8位的灰度图像通道,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,其中黑表示透明,白表示不透明,灰表示半透明。


    举个栗子

    一般在CTF中有两种常见的题型,一种是flag隐藏在某个通道中,一种是将flag置于每个最低有效位。在讲题目之前,我们先介绍一个图片隐写术中的神器——StegSolve。如下图为stegsolve的界面,主要的功能为analyse,对于analyse的几个功能键做个简单的介绍:File Format:文件格式,这个主要是查看图片的具体信息;Data Extract:数据抽取,图片中隐藏数据的抽取;Frame Browser:帧浏览器,主要是对GIF之类的动图进行分解,动图变成一张张图片,便于查看;Image Combiner:对于两张图片的拼接,使用AND、OR、XOR等进行处理。

    处理.webp.jpg

    flag隐藏于某个通道中

    1.题目为SB!SB!SB!,并且有提示LSB。

    SB.webp.jpg


    2.放入stegsolve中,遍历通道,发现red plane 0中存在一个二维码。

    二维码.webp.jpg


    3.解码得到flag。

    flag.webp.jpg


    flag隐藏于每个最低有效位中

    1.题目为Chromatophoria,由题目提示the color values可猜测为一题LSB隐写。

    LSB.webp.jpg


    2.放入stegsolve中,遍历通道,发现通道7-1的内容差不多,但是到了red plane 0、green plane 0以及blue plane 0 均为黑色,猜测低位被插入数据。

    数据.webp.jpg

    数据 2.webp.jpg

    数据 3.webp.jpg


    3.使用data extract功能提取数据,得到flag。

    flag.webp.jpg


    好啦,斗哥这期的图片隐写就到这结束啦,下期接着分享其他的图片隐写术,我们下期再见~

    漏斗社区二维码.jpg

    发新帖
    您需要登录后才可以回帖 登录 | 立即注册