打不开的文件分值:10

  • 来源: 实验吧
  • 难度:中
  • 参与人数:2718人
  • Get Flag:1222人
  • 答题人数:1276人
  • 解题通过率:96%

咦!这个文件怎么打不开?

解题链接: http://ctf5.shiyanbar.com/423/stego/xx.gif

原题链接:http://www.shiyanbar.com/ctf/1878

【解题报告】

  这是我入门隐写术开始写的第三道题,这道题很有意思,很多小伙伴可能都不清楚隐写术吧,其实隐写术就是把一些想要表达的信息藏起来,让别人看不见,通过某种方式去获取这些信息,这个就是隐写术了~~~

咱们来看看这题,点击解题链接,发现一片黑,果真是打不开,咱们把这个文件下载下来~~~

这是一个gif文件,gif文件大家都知道,是个动态图片,打开试试看,果真打不开,这个时候就很有意思了,咱们想想看是不是可以用工具?

咱们需要一个工具,叫Notepad++,打开发现一堆乱码,有些简单的题目会直接把flag写在文件里面,我们可以搜索一下看看有没有flag~~~

查找一下,发现没有!!!这就说明这题目还不是很简单,怎么办呢?

这个时候需要我们有一点基本的知识,咱们来看一个正常的gif图片

我选择了一幅柯南的图片,咱们同样用Notepad++打开,对比一下这两个图片

你发现了什么呢?

发现这个xx.gif头部少了点东西!!!

似乎缺少了一个GIF8,我们试试补全GIF8保存下这个xx.gif图片,我们发现这个gif图片能正常打开啊!

在这里我们需要进行解释下文件原理!

文件也好,图片查看器也好,它是通过文件头部来识别该文件是什么文件,是gif图片,还是png图片,还是jpg图片,或者是其它之类的图片啥的,GIF89a,这个信息是gif的开头信息,缺了这个信息之后,无论浏览器也好,图片查看器也好,都没法查看这个图片内容,这样的话它的内容就会隐藏起来!!!

咱们需要修复很简单,只需要把GIF8加进去然后保存就OK了!

我们得到动图以后,发现key的关键字,大概就能猜测这里面有猫腻,咱们发现这个动图晃得太快了,看不明白,咱们有两种思路,第一种咱们可以利用截图截下来,第二种思路咱们可以利用工具,把图片的帧给分出来,叫StegSolve,这里面有个功能,叫逐帧查看,如图所示:

图片是由4帧构成的,原本晃动的图片,现在已经完全定下来了!!!咱们就可一帧一帧的看清楚,咱们就可以把key抄下来!

我们得到的key是一个这样的结果:dGhpcyBpcyBhIGdpZg==

这个如果直接提交肯定是不行的,说明这里面有猫腻,对于熟悉编码的人来说,这种形式的编码是Base64的一个编码,那么它的特征是结尾有两个"==",一般我们看到后面跟着两个"==",我们可以确定是一个Base64的编码!

咱们可以用工具解密,我推荐使用火狐解密,火狐的插件HackBar,可以对Base64解密!如图所示:

咱们看看这个是不是最后的答案呢?

那就说明答案正确了!

CTF---隐写术入门第三题 打不开的文件的更多相关文章

  1. CTF---密码学入门第三题 奇怪的短信

    奇怪的短信分值:10 来源: Ayn 难度:易 参与人数:5117人 Get Flag:2623人 答题人数:2858人 解题通过率:92% 收到一条奇怪的短信: 335321414374744361 ...

  2. CTF---Web入门第三题 这个看起来有点简单!

    这个看起来有点简单!分值:10 来源: 西普学院 难度:易 参与人数:10515人 Get Flag:3441人 答题人数:4232人 解题通过率:81% 很明显.过年过节不送礼,送礼就送这个 格式: ...

  3. CTF---安全杂项入门第三题 这是捕获的黑客攻击数据包,Administrator用户的密码在此次攻击中泄露了,你能找到吗?

    这是捕获的黑客攻击数据包,Administrator用户的密码在此次攻击中泄露了,你能找到吗?分值:30 来源: 2014sctf 难度:难 参与人数:3918人 Get Flag:384人 答题人数 ...

  4. jQuery入门第三

    jQuery入门第三 1.HTML 2.CSS 衣服 3.javascript 可以动的人 4.DOM 编程 对html文档的节点操作 5.jQuery 对 javascript的封装 简练的语法 复 ...

  5. CTF---密码学入门第六题 古典密码

    古典密码分值:10 来源: 北邮天枢战队 难度:易 参与人数:5115人 Get Flag:1549人 答题人数:1783人 解题通过率:87% 密文内容如下{79 67 85 123 67 70 8 ...

  6. JavaMail入门第三篇 发送邮件

    JavaMail API中定义了一个java.mail.Transport类,它专门用于执行邮件发送任务,这个类的实例对象封装了某种邮件发送协议的底层实施细节,应用程序调用这个类中的方法就可以把Mes ...

  7. CTF---Web入门第十三题 拐弯抹角

    拐弯抹角分值:10 来源: cwk32 难度:易 参与人数:5765人 Get Flag:2089人 答题人数:2143人 解题通过率:97% 如何欺骗服务器,才能拿到Flag? 格式:CTF{} 解 ...

  8. CTF---Web入门第十一题 PHP大法

    PHP大法分值:20 来源: DUTCTF 难度:中 参与人数:8205人 Get Flag:2923人 答题人数:3042人 解题通过率:96% 注意备份文件 解题链接: http://ctf5.s ...

  9. CTF---Web入门第十题 Once More

    Once More分值:10 来源: iFurySt 难度:易 参与人数:4782人 Get Flag:2123人 答题人数:2166人 解题通过率:98% 啊拉?又是php审计.已经想吐了. hin ...

随机推荐

  1. JavaScript基础3——关于运算符

    算数运算符 算数运算符有+.-.*./.%.++.--.=.类似+=的运算符,其使用方式与编程语言(Java.C++.C#等)基本一样.给定 y=5,下面的表格解释了这些算术运算符: 运算符 描述 例 ...

  2. 453. Minimum Moves to Equal Array Elements

    Given anon-emptyinteger array of sizen, find the minimum number of moves required to make all array ...

  3. bzoj 4345: [POI2016]Korale

    Description 有n个带标号的珠子,第i个珠子的价值为a[i].现在你可以选择若干个珠子组成项链(也可以一个都不选),项链的价值为所有珠子的价值和.现在给所有可能的项链排序,先按权值从小到大排 ...

  4. bzoj 2733: [HNOI2012]永无乡

    Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过桥可以 ...

  5. ES6 函数的扩展1

    1. 函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,为了避免这个问题,通常需要先判断一下参数y是否被赋值,如果没有,再等于默认值. ES6允许为函数的参数设置默认值,即直接 ...

  6. 扩展1 - Python 获取当前时间的用法

    1.先导入库:import datetime 2.获取当前日期和时间:now_time = datetime.datetime.now() 3.格式化成我们想要的日期:strftime() 比如:“2 ...

  7. Linux(CentOS6.5)修改系统市区被中国标准时间(北京时间)

    本文地址http://comexchan.cnblogs.com/ ,作者Comex Chan,尊重知识产权,转载请注明出处,谢谢! 备份时区配置文件 cp /etc/localtime /etc/l ...

  8. Discuz uc.key泄露导致代码注入漏洞

    漏洞描述:在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,最终进入网站后台,造成数据泄漏 ...

  9. Kill 进程

      动态杀各种进程,谨慎操作:事例 status='sleeping'   --AUTHOR      KiNg --DATE        2016-05-30 DECLARE @SPID INT ...

  10. Mac下安装pymssql

    需要先安装freetds 先用 brew list 查看已经安装的包 如果已经安装freetds,则使用 brew uninstall freetds先卸载 brew unlink freetds b ...