置顶

CTF之图片隐写_ctf图片隐写-CSDN博客

作者:admin | 分类:NBA资讯 | 浏览:26 | 日期:2024年05月05日

CTF之图片隐写_ctf图片隐写-CSDN博客

CTF的全称是Capture The Flag,直译过来就是“获取旗帜”。这种比赛属于网络安全领域,是网络安全技术人员之间的一种竞技形式。CTF起源于1996年DEFCON全球黑客大会,以代替黑客们通过发起真实攻击进行技术比拼。

发展至今,全球已经有各种CFT类的比赛了,DEFCON作为CTF赛制的源头,DEFCON CTF自然成为了全球最高技术水平和影响力的CTF竞赛,类似于足球里的“世界杯” ,比赛的奖金也很高。

CTF既然叫“获取旗帜”,那么肯定得有个Flag,如下图,目标靶机里面藏着Flag,选手们通过各种手段去得到这个Flag,提交就可以拿到分数。

CTF比赛主要分为下面大三类: 解题模式 - Jeopardy攻防模式 - Attack & Defense混合模式 - Mix

而第一类解题模式又主要分为以下类型: Web 网络攻防RE 逆向工程Pwn 二进制漏洞利用Crypto 密码攻击Misc 安全杂项

安全杂项的涉及范围也比较广,但比较喜欢考的就是"图片隐写"。今天我们讲的就是图片隐写。

隐写术对于刚接触CTF的人来说会感觉比较神奇。题目的Flag会隐藏到图片、音频、视频等各类数据载体中供参赛选手获取。要么是修改这些载体来隐藏flag,要么就是将flag隐藏在这些载体的二进制空白位置。有时需要很强的侦察能力才能发现(有时也需要脑洞)。此类题目考查选手们对各种隐写工具、隐写算法的熟悉程度。

图片一般由RGB三原色组成,每个像素点的R、G、B都占有8bit,即有256种颜色,一共包含256的三次方颜色,即16777216中颜色,人类的眼睛可以区分约1,000万种不同的颜色,剩下无法区分的颜色就有6777216。换句话说,人类对相近的颜色敏感度较低,因此部分像素点改变肉眼不容易察觉,LSB隐写就是利用这一特点,修改了像素中的最低位,把一些信息隐藏起来。

在计算机中,数据以二进制形式存储,假如某个像素点的一个值是255,二进制值是11111111,把最后一位替换成0,对应的十进制变为254,通过这一方法隐藏信息,但是肉眼不易察觉(写轮眼除外)。

那么如何获取隐写的Flag呢,这就需要一些工具,比较好使的是:Stegsolve。这个使用很方便,也很小巧,305KB,不到0.5MB,什么概念,比一张图片都小。如下图:

使用命令启动:

启动之后如图:

可以看到,菜单栏有三列:File、Analyse、Help。全部功能都在Analyse这列,File负责打开文件。我们随便打开一张图片:

File Format:查看文件格式。如下图:

该功能会显示图片的具体信息。最关键的是这个"Data Extract"功能,负责数据提取。如图:

左边是4个通道:Alpha(表示透明度)通道和R、G、B通道。Alpha表示透明度:Alpha=0表示完全透明,Alpha=255为完全不透明。颜色值前面讲过,是0-255,2的8次方,可以自由选择0-7任意一个通道(例如Red 勾选3,就是把图片中Red值为8的全部提取出来,2的3次方是8)。

右边的Bit Order有MSB和LSB,看到这个LSB大家就明白上面讲的了,MSB是一串数据的最高位,LSB是一串数据的最低位。

Bit Plane Order:这个是调整位平面的顺序,前面我们说过,每个像素点都有RGB三个值,即每像素点相当于有3层,3*8个bit。从LSB(最低有效位0)到MSB(最高有效位7)随着从位平面0 到位平面7,位平面图像的特征逐渐变得复杂,细节不断增加。

采用LSB隐写,每个像素可以携带3bit的信息。修改后肉眼无法区分,如下图:

左边3种绿色几乎不能区分(写轮眼除外)。我们只需要把最低位的二进制全部提取出来,就可以获取隐写的信息。

这种题目可以通过调整Bit Planes中的数值,预览文本框中的十六进制表,即可获取flag。

PS:png图片是一种无损压缩,也只有在无损压缩或无压缩的图片(bmp图片是一种无压缩)上实现LSB隐写,如果是jpg图片,就没法使用LSB隐写。

最后出一道题,找出图片中的Flag,文件可以在本人公众号:极客随想,回复:图片隐写,即可获取(StegSolve工具和图片文件都已打包)。找到Flag后可以在评论区留言。

发表评论

取消
微信二维码
支付宝二维码