iCMS

蓝鲸CTF——隐写术

iCMS http://www.hlike.cn 2018-08-12 10:22 出处:网络 编辑:@iCMS
好喜欢专业转载优质博客文章的地方哦~

这一次我主要是打算把蓝鲸CTF里面的有关于隐写术的题目进行一下整合,让各位能够更好的查看

如有错误,希望各位大佬指点,谢谢!!!

1:Find

50

Find the hidden information (we call itflag) in theimage.

Credit

HCTF 2014 Quals

蓝鲸CTF——隐写术

解题思路:这一题难度易:

首先:下载这个图片:http://whalectf.xin/files/fc2d7e2789534ba2bdeb2bbd918990a7/stego_final.png

蓝鲸CTF——隐写术

然后使用神器:Stegsolve(这个工具如果你们没有可以加我为好友,我会分享给你们的)

蓝鲸CTF——隐写术

把这张照片保存就可以了(你们有没有发现这个二维码,和我们见过的不同)

使用光影魔术手这个软件,把这个照片进行反光处理就可以了

蓝鲸CTF——隐写术

使用微信上面的扫一扫就会得到:

蓝鲸CTF——隐写术

最后得到答案:flag{hctf_3xF$235#x5e3}

2:被我吃了

被蓝鲸吞噬的flag

whale1.jpg

蓝鲸CTF——隐写术

解题思路:难易程度易:

首先使用binwalk就会发现这个图片里面隐藏的有文件

蓝鲸CTF——隐写术

然后使用binwalk xx.png -e 命令进行分离就可以得到隐藏的文件

蓝鲸CTF——隐写术

打开文件就会得到:

蓝鲸CTF——隐写术

最后答案:flag{WelcomeT3WhaleCTF}

3:合体鲸鱼

50

你能找到我不同的一面吗?

02.jpg

蓝鲸CTF——隐写术

解题思路:难易程度易:

首先:这一题的思路很简单,使用binwalk就可以得到很多信息:

蓝鲸CTF——隐写术

就会看到有隐藏的信息

然后使用foremsot xx.jpg 就会得到隐藏的文件:

蓝鲸CTF——隐写术

蓝鲸CTF——隐写术

打开就会得到:

蓝鲸CTF——隐写术

最后得到答案:flag{youfindmeWHALE}

4:亚种

50

这是什么种类的蓝鲸呢?

whale.jpg

蓝鲸CTF——隐写术

解题思路:难易程度:易

首先使用binwalk查看,然而都是看不懂的信息:

蓝鲸CTF——隐写术

傻傻的我以为划红线的是答案所在地

点击进去都是代码看不懂

换一种方法都是我们常用的哦!!!


下面使用hex打开就可以得到答案:

蓝鲸CTF——隐写术

最后得到答案:flag{firsttry}

5:愤怒的小猪

100

经过不断的挫折,小猪们吸取教训把宝藏藏起来了,你能找到吗?

ste.png

解题思路:难易程度易:

蓝鲸CTF——隐写术

首先·:看见这个图片要能够想到是三原色就可以很快得到答案:

使用stegsolve就可以得到答案:

蓝鲸CTF——隐写术

扫描上面的二维码就可以得到答案:

蓝鲸CTF——隐写术

最后得到答案:flag{AppLeU0}

6:下雨天

50

下雨天了,你总是在我心中一闪而过

Misc01.jpg

蓝鲸CTF——隐写术

解题思路:难易程度易:

这一题我还是请教大佬之后写出来的,而我之所以写成易

是因为它真的很简单,

是我想太多了,当时没有写出来

这一题是需要使用Stegolove就可以做出来了

蓝鲸CTF——隐写术

最后得到答案:GUETCTF{Y0u_sEE_m3}

下面是我错误的步骤,写出来是为了能够告诫自己

开始的时候看见是图片

直接想到使用binwalk就会得到答案

是的这一题分离出来一张图片

然而这个图片并没有什么有用的信息

接着使用 winhex就会发现文件头不对

更改一下文件头发现图片打不开了

(QAQ)

经历了那么多,最后发现那么简单,我只是感觉自己很笨呀(QAQ)

7:这是什么

100

兔子的脚下踩到了什么?

rabbit.jpg

蓝鲸CTF——隐写术

解题思路:难易程度易:

这一题比较简单,使用winhex就可以得到最后的答案

(为什么那么简单的题目我要想的那么复杂,导致现在开始怀疑自己QAQ)

根据题目的描述就能够想到最后的结果所在地(拉到最后的地方就会得到)

蓝鲸CTF——隐写术

这个是ASCII码,使用ASCII码表对照一下就会得到最后的答案:

蓝鲸CTF——隐写术

最后得到答案:flag{pE3kQzmaMN}

8:真是动图

100

真的是动图,相信我啊,我就把password藏里面了


答案格式key{xxx}

gif.gif

蓝鲸CTF——隐写术

解题思路:难易程度:中等(之所以评为中等,并不是因为这一题难,而是因为不容易读

至少我是这样认为的QAQ)

首先:需要下载图片,使用百度云,360浏览器,以及所有可以使用链接下载的工具都可以了:

蓝鲸CTF——隐写术

然后:就会发现图片打开出错

放进winhex中看一下就会发现,文件头缺失

蓝鲸CTF——隐写术

加上GIF8就会保存之后就会得到:

蓝鲸CTF——隐写术

这是一个动图:使用steglove打开发现,看的不清楚,使用2345看图王吧


毕竟这个可以一帧一帧的看

蓝鲸CTF——隐写术

把灰色的部分读取就会得到base64编码的东西:

使用在线工具:

蓝鲸CTF——隐写术

就会得到最后的答案:

key{catch_the_dynamic_flag_is_quite_simple}

9:错误压缩

150

把我的女神压缩就忍了,竟然还压缩错了!


答案格式:SCTF{xxx}

sctf.png

蓝鲸CTF——隐写术

解题思路:总的来说这一题,还是比较难的,可能是自己会的太少,所以这样感觉的

不过这一题还是会学习到许多新的知识的(HHH)。

首先:我们会使用 binwalk 看一下有没有隐藏的文件或者压缩包(但是都没有QAQ)


使用stegolve 也没有任何信息(QAQ)

然后:上网搜一下看看有没有大佬写过这个题目的wp(HHH很聪明呀!!没有什么都没有QAQ)

自己解决吧(自己又上网搜一些关于图片隐写的解题思路,发现pngcheck没有使用过)

使用一一下吧(但是没有工具,自己又蒙蒙的上网找工具(http://www.libpng.org/pub/png/apps/pngcheck.html)

这个工具的使用方法比较简单(具体使用方法,我会在下面解题思路中详细写出来的)

使用cmd(这个cmd今天不知道怎么了就是进不了文件夹里面的内容了,找到一位大佬用另一种方法进入的(QAQ))

我们需要把图片和pngcheck放在同一个文件夹里面

蓝鲸CTF——隐写术

然后使用cmd:

蓝鲸CTF——隐写术

可以看到,正常的块的length是在65524的时候就满了,而倒数第二个IDAT块长度是45027,

最后一个长度是138,很明显最后一个IDAT块是有问题的,因为他本来应该并入到倒数第二个未满的块里

看到下面的数据和上面的不同,关键点就是在这个地方

使用winhex找到(如下图所示的红线的位置)

蓝鲸CTF——隐写术

查找78 9C文件头标志,这个地方需要使用python进行处理就会得到:

蓝鲸CTF——隐写术

import zlib

import binascii

IDAT =("789C5D91011280400802BF04FFFF5C75294B5537738A21A27D1E49CFD17D


B3937A92E7E603880A6D485100901FB0410153350DE83112EA2D51C54CE2E585B15A


2FC78E8872F51C6FC1881882F93D372DEF78E665B0C36C529622A0A45588138833A1


70A2071DDCD18219DB8C0D465D8B6989719645ED9C11C36AE3ABDAEFCFC0ACF023E77


C17C7897667").decode("hex")

result = binascii.hexlify(zlib.decompress(IDAT))

print result

蓝鲸CTF——隐写术

就会得到:

蓝鲸CTF——隐写术

使用conventer进行hex转化就会得到:

蓝鲸CTF——隐写术

如果ctf做的比较多就会发现,关于0101:

(1)有可能代表的是ASCII码

(2)有可能是二维码:0表示的是黑色,1表示的是白色

关于这个里面的0101,一共有625个,正好是25的平方

借鉴一段代码:

蓝鲸CTF——隐写术

import Image

MAX = 25

pic = Image.new("RGB",(MAX,MAX))

str = "11111110001000011011111111000001011100101101000001101110101000000000101110110


111010010000000010111011011101011101101001011101100000101010110110100000111111110101


010101011111110000000010111011100000000110100110000010100111011011110101010010000111


000000000001010000000010010011010001001110011110111001111000011101111100011001010001


100111000010101000110100011110101100000101000101100000110111011001000011100111001000


010111111101000000001101010010001111011111110111000011010110111000001000011001100011


110101110100011010011111000010111010110001110100111001011101001001110110110001100000


10110001101000110001111111011010110111011011"

i=0

for y in range (0,MAX):

for x in range (0,MAX):

if(str[i] == '1'):

pic.putpixel([x,y],(0,0))

else:

pic.putpixel([x,(255,255,255))

i = i+1

pic.show()

pic.save("flag.png")

蓝鲸CTF——隐写术

这个需要安装Image库

运行之后就会得到:

蓝鲸CTF——隐写术

使用手机或者在线工具都可以,但是我使用的是QR Research

就会得到答案:

蓝鲸CTF——隐写术

注意flag的格式,以及需要看清0和o的区别,1和I的不同

10:模糊的图片

100

p图大神请帮我把模糊的图片弄清楚,答案格式:flag{xxxx}

1.png

蓝鲸CTF——隐写术

解题思路:关于这一题有两种解题思路


但是总的来说是一种都是使用一个思想锐化的思维

可能是我太弱了

导致这一题并没有得到最后的答案

首先:看到题目

”p图大神请帮我把模糊的图片弄清楚“

这一句已经很清楚的知道需要使用ps以及其它图片处理工具进行锐化处理


这个地方可以使用图片处理工具有:美图秀秀,ps,光影魔术手

(我比较推荐使用光影魔术手,没有广告)

几个常规的处理技巧

蓝鲸CTF——隐写术

经过处理之后就会得到:

蓝鲸CTF——隐写术

或者使用python:

蓝鲸CTF——隐写术

#coding:utf-8

import Image

img = Image.open('ifs.bmp')

X = img.size[0]

Y = img.size[1]

print X,Y

for i in range(X-2):

for j in range(Y-2):

a = img.getpixel((i,j))[0]+img.getpixel((i,j))[1]+img.getpixel((i,j))[2]

b = img.getpixel((i,j+1))[0]+img.getpixel((i,j+1))[1]+img.getpixel((i,j+1))[2]

c = img.getpixel((i,j+2))[0]+img.getpixel((i,j+2))[1]+img.getpixel((i,j+2))[2]

if (a > b and c > b) or (a < b and c < b):

pass

else:

img.putpixel((i,j),255))

img.show()

蓝鲸CTF——隐写术

蓝鲸CTF——隐写术

看图得key: At10ISCC421ZLAPL

11:IHDR

100

苹果拍照很美,但是我要拍的东西怎么老是拍不出来

HARD.png

蓝鲸CTF——隐写术

解题思路:难易程度易:

直接使用winhex就可以得到答案:


首先:使用winhex打开找到IHDR位置就可以了:

然后知道更改高度就是划红线的地方:

蓝鲸CTF——隐写术

保存之后就会得到最后的答案:FLAG{ihDR_ALSO_FUN}

12:斗鸡眼

200

听说斗鸡眼就能找到答案了


答案格式:ISG{xxxx}

final.png

蓝鲸CTF——隐写术

解题思路:难易程度难:

首先这一题虽然是实验吧的原题,但是当时的我并没有做出来,这个是我的问题(毕竟哪个时候能力不够呀)

虽然今天写出来了解题思路,但是还是参考一些大佬写的思路,自己做的总结(太弱了,是我现在的问题)

首先:关于这一题使用binwalk

蓝鲸CTF——隐写术

以及foremost就会得到一个新的文件,是两个看起来相同的照片,然而并没有那么简单的哦!!

蓝鲸CTF——隐写术

蓝鲸CTF——隐写术

是的这是两张不同的图片,用Beyond Compare 在二进制下看一眼,文件的最末尾果然不同

蓝鲸CTF——隐写术

竟然看出了什么∑(っ °Д °;)っ这一条红线是啥玩意?(・(ェ)・)

蓝鲸CTF——隐写术

使用winhex查看一下,看看里面有没有藏什么东西( ̄. ̄),小样你躲不过我专职酱油选手的,

然而,并没有发现什么重要的信息(QAQ)

但是,难不倒本宝宝的,我还有神器steglove工具进行合并:

蓝鲸CTF——隐写术

合并一下并且保存:默认solved.bmp

蓝鲸CTF——隐写术

使用winhex进行查看就会得到:

蓝鲸CTF——隐写术

记住千万不要使用进度条乱拉,这样会错过重要的信息:

蓝鲸CTF——隐写术

就在这里,拉进度条的小伙伴你是看不到的


咳咳,这里其实很难进行下一步,因为不知道要干嘛了,把这一块抠出来,然后各种编码转换


然并卵o( ̄ヘ ̄*o)


后来我发现了,这估计就是一个偏移的提示


Tips:把start.png和to.png保存为bmp格式,因为png存储的问题,不太好找偏移


然后瞎折腾啊!!!!!!


终于发现在to.bmp的对应偏移里找到了些东西

蓝鲸CTF——隐写术

就是这些乱七八糟的


把这些抠出来,仔细观察一下,看!


(・(ェ)・):看什么?


有没有发现这是RGB(Σ( ° △ °|||)︴,这个写writeup一定是个弱智算了我们不看了)


在R的位置上呈现的是二进制

蓝鲸CTF——隐写术

所以接下来就是把R位置上的数字挑出来,虽然没多少但是这种重复的工作就交给代码吧

蓝鲸CTF——隐写术

然后处理完就是这样的

蓝鲸CTF——隐写术

其实最开始我是保留所有的,也就是00 直接保留00,01直接保留01,但是后来解码发现有错误,然后就把00改为0,01改为1

从小书包掏出stegsolve的好朋友JPocketKnife

两部曲:先binary format

蓝鲸CTF——隐写术

然后to ascii

蓝鲸CTF——隐写术

然后就没了,真的没了还看啥?


蓝鲸CTF——隐写术

这一题参考了两个大佬的解题思路,总结了一下,写出的博文

如果有什么错误的地方请你们指正,谢谢


G

M

T

检测语言

世界语

中文简体

中文繁体

丹麦语

乌克兰语

乌兹别克语

乌尔都语

亚美尼亚语

伊博语

俄语

保加利亚语

信德语

修纳语

僧伽罗语

克罗地亚语

冰岛语

加利西亚语

加泰罗尼亚语

匈牙利语

南非祖鲁语

卡纳达语

卢森堡语

印地语

印尼巽他语

印尼爪哇语

印尼语

古吉拉特语

吉尔吉斯语

哈萨克语

土耳其语

塔吉克语

塞尔维亚语

塞索托语

夏威夷语

威尔士语

孟加拉语

宿务语

尼泊尔语

巴斯克语

布尔语(南非荷兰语)

希伯来语

希腊语

库尔德语

弗里西语

德语

意大利语

意第绪语

拉丁语

拉脱维亚语

挪威语

捷克语

斯洛伐克语

斯洛文尼亚语

斯瓦希里语

旁遮普语

日语

普什图语

格鲁吉亚语

毛利语

法语

波兰语

波斯尼亚语

波斯语

泰卢固语

泰米尔语

泰语

海地克里奥尔语

爱尔兰语

爱沙尼亚语

瑞典语

白俄罗斯语

科萨

科西嘉语

立陶宛语

索马里语

约鲁巴语

缅甸语

罗马尼亚语

老挝语

芬兰语

苏格兰盖尔语

苗语

英语

荷兰语

菲律宾语

萨摩亚语

葡萄牙语

蒙古语

西班牙语

豪萨语

越南语

阿塞拜疆语

阿姆哈拉语

阿尔巴尼亚语

阿拉伯语

韩语

马其顿语

马尔加什语

马拉地语

马拉雅拉姆语

马来语

马耳他语

高棉语

齐切瓦语

世界语

中文简体

中文繁体

丹麦语

乌克兰语

乌兹别克语

乌尔都语

亚美尼亚语

伊博语

俄语

保加利亚语

信德语

修纳语

僧伽罗语

克罗地亚语

冰岛语

加利西亚语

加泰罗尼亚语

匈牙利语

南非祖鲁语

卡纳达语

卢森堡语

印地语

印尼巽他语

印尼爪哇语

印尼语

古吉拉特语

吉尔吉斯语

哈萨克语

土耳其语

塔吉克语

塞尔维亚语

塞索托语

夏威夷语

威尔士语

孟加拉语

宿务语

尼泊尔语

巴斯克语

布尔语(南非荷兰语)

希伯来语

希腊语

库尔德语

弗里西语

德语

意大利语

意第绪语

拉丁语

拉脱维亚语

挪威语

捷克语

斯洛伐克语

斯洛文尼亚语

斯瓦希里语

旁遮普语

日语

普什图语

格鲁吉亚语

毛利语

法语

波兰语

波斯尼亚语

波斯语

泰卢固语

泰米尔语

泰语

海地克里奥尔语

爱尔兰语

爱沙尼亚语

瑞典语

白俄罗斯语

科萨

科西嘉语

立陶宛语

索马里语

约鲁巴语

缅甸语

罗马尼亚语

老挝语

芬兰语

苏格兰盖尔语

苗语

英语

荷兰语

菲律宾语

萨摩亚语

葡萄牙语

蒙古语

西班牙语

豪萨语

越南语

阿塞拜疆语

阿姆哈拉语

阿尔巴尼亚语

阿拉伯语

韩语

马其顿语

马尔加什语

马拉地语

马拉雅拉姆语

马来语

马耳他语

高棉语

齐切瓦语

文本转语音功能仅限200个字符

选项 : 历史 : 反馈 : Donate

关闭

0

精彩评论

暂无评论...
验证码 换一张
取 消