CTF之图片隐写

news/2024/12/12 7:59:21/

1、前言

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

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

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

CTF比赛主要分为下面大三类:

  1. 解题模式 - Jeopardy
  2. 攻防模式 - Attack & Defense
  3. 混合模式 - Mix

而第一类解题模式又主要分为以下类型:

  • Web 网络攻防
  • RE 逆向工程
  • Pwn 二进制漏洞利用
  • Crypto 密码攻击
  • Misc 安全杂项

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

2、图片隐写

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

2.1、 LSB隐写

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

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

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

java -jar Stegsolve.jar

启动之后如图:
在这里插入图片描述

2.2、StegSolve

可以看到,菜单栏有三列: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后可以在评论区留言。


http://www.ppmy.cn/news/285983.html

相关文章

项目:变形金刚拼图

代码在github: https://github.com/Viyu/TransformersPuzzle 这是一款拼图游戏,Transformers的主题。 这个游戏一共包含18个级别,1-6级的是3x3的难度,7-12级的是4x4的难度,13-18级的是5x5的难度。 你可以打开声音或振动…

变形金刚动态壁纸源码

2019独角兽企业重金招聘Python工程师标准>>> 先上两张动态图给大家看(先声明,图片只是我从《会说话的变形金刚》里面提取的,不是自己弄的)   APK已经发布在各个市场了,欢迎大家去下载!   由…

变形金刚图片----汽车人

借这股东风 把偶收藏的部分图片放出来吧 今天只找到了汽车人的 霸天虎的找不到了 可能是在家里 或者是不小心删掉了............ :x 如果谁那也有 就放出来大家共享一下吧 [img]http://w2.886.cn/4jsZ/27041651/12108863_8032.jpg[/img] [img]http://w2.886.cn/4jsZ/27041650…

java变形金刚视频,Java 通用代码生成器光 2.0.0 Insight(内省) 发布尝鲜版 4,代码变形金刚...

Java 通用代码生成器光 2.0.0 Insight(内省) 发布尝鲜版4,代码变形金刚 光 2.0.0 Insight(内省) 尝鲜版4拥有动态椰子树和动词否定两大功能群。 动态椰子树功能群允许您定义风格多样的代码约定,符合不同项目组不同的代码约定。 动词否定功能群允许您自定…

变形金刚2_变形金刚(

变形金刚2 重点 (Top highlight) This is a 3 part series where we will be going through Transformers, BERT, and a hands-on Kaggle challenge — Google QUEST Q&A Labeling to see Transformers in action (top 4.4% on the leaderboard).In this part (1/3) we wil…

批量爬取变形金刚图片保存到本地。

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文文章来自:CSDN 作者:Guapifang PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习…

Python爬虫:批量爬取变形金刚图片,下载保存到本地。

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文文章来自:CSDN 作者:Guapifang 其实和爬取普通数据本质一样,不过我们直接爬取数据会直接返回,爬取图…

synchronize锁和ReentrantLock锁

首先ReentrantLock是一个非公平锁,但也是可以变成公平锁的(传入参数true即可), 就是ReentrantLock lockernew ReentrantLock(true); ReentrantLock的唤醒机制是搭配Condition类来实现的,可以实现为唤醒指定的等待线程. 而synchronized锁是搭配wait 和notify来实现唤醒的且唤…