蓝鲸安全CTF打卡题——第一期隐写术

前言

渣渣一枚,萌新一个,会划水,会喊六六

上一篇文章:蓝鲸安全CTF打卡题——第一期密码学

个人博客:https://www.cnblogs.com/lxz-1263030049/

本文首发先知社区:蓝鲸安全CTF打卡题——第一期隐写术

i春秋:蓝鲸安全CTF打卡题——第一期隐写术

再过几天就是中秋节了,我打算尽自己最大的能力把蓝鲸安全平台上面的打卡题目的writeup整理出来。

有什么错误的地方 希望各位大佬指正(谢谢Orz)

一:雨中龙猫

知识点

图片源码隐写、base64编码

解题思路

使用普通的记事本打卡图片就可以了,这一题感觉有点坑(MISC不按常规套路出牌),使用常规的方法没有想出来,后来看了塔主的解题视频(5分钟的) 里面说了一下关于base64的内容,所以想到了方法(HHHH)

由于题目中提示有答案的格式,所以先对whalectf进行base64加密(base64加解密平台)

在记事本中搜索内容d2hhbGVjd(一次一次的尝试,每一次尝试就减少几个字符)

我们能够看到最后提供的提示是:py,同样的操作,我们进行base64操作

我们继续刚刚的操作就会得到

合并两次得到的结果就会得到:d2hhbGVjdGZ7TG9uZ19tYW9faXNfaGFwcHl9

base64解密之后得到:

最后得到答案:whalectf{Long_mao_is_happy}

二:追加数据

知识点

文件绑定、word隐藏

文件绑定的方法

在cmd中

copy /b 1.jpg+2.txt 3.jpg

解题思路

拿到图片,在kali里面使用binwalk工具进行分析

使用命令:

binwalk whalediary.jpg 

可以看到一个zip压缩包隐藏在里面,使用foremost命令

使用命令:foremost whalediary.jpg

使用word,打开docx文件就会得到(由于我事先把word中的隐藏关闭了,所以打开的文档可能和没有关闭的人的不同)

我们只需要注意每一段后面的字母就好,把他们组合起来就是答案(可是我没有读懂QAQ)

三:追加数据

知识点

PNG文件格式、zlib压缩数据、二维码识别

解题思路

首先使用pngcheck工具检查图片的IDAT

使用的命令为:pngcheck.exe -v whalectf.png

可以看到一个IDAT位为0x17345,长度为193 用winhex打开图片,找到IDTA块对应的位置 如图所示截取:

这里不需要截取长度标志位C1IDAT图像数据块和最后四位的CRC冗余校验码,使用如下脚本进行分析即可:

# python2
#! /usr/bin/env python
import zlib
import binascii
IDAT='789CA552B911C3300C5B09D87FB99C65E2A11A17915328FC8487C0C7E17BCEF57CCFAFA27CAB749B8A8E3E754C4C15EF25F934CDFF9DD7C0D413EB7D9E18D16F15D2EB0B2BF1D44C6AE6CAB1664F11933436A9D0D8AA6B5A2D09BA785E58EC8AB264111C0330A148170B90DA0E582CF388073676D2022C50CA86B63175A3FD26AE1ECDF2C658D148E0391591C9916A795432FBDDF27F6D2B71476C6C361C052FAA846A91B22C76A25878681B7EA904A950E28887562FDBC59AF6DFF901E0DBC1AB'.decode('hex')
result = binascii.hexlify(zlib.decompress(IDAT))
bin = result.decode('hex')
print bin
print '\r\n'
print len(bin)

就会得到如下所示:

一串0和1的数据 长度为1024是一个正方形 可以想到是要生成一个二维码,把生成的0和1放在result.txt里面,用如下脚本生成二维码

    # python2
#! /usr/bin/env python
import  Image
MAX = 32
pic = Image.new('RGB',(MAX*9,MAX*9))
f = open('result.txt','r')
str = f.read()
i = 0
for y in range(0,MAX*9,9):
for x in range(0,MAX*9,9):
if(str[i] == '1'):
for n in range(9):
for j in range(9):
pic.putpixel([x+j,y+n],(0,0,0))
else:
for k in range(9):
for l in range(9):
pic.putpixel([x+l,y+k],(255,255,255))
i = i+1

pic.show()
pic.save("flag.png")
f.close()

得到二维码:

使用QR_Research或者其它工具也是可以的,扫描后就出现flag

最后得到答案:whale{QR_code_and_png}

四:破碎的心

知识点

条形码

解题思路

我们把图片下载下来之后会发现这是一个不完整的条形码

我们选择其中的条形码还原即可 在画图里,先用矩形框选择一些连续的条纹,按住ctrl,按上下键不断还原即可

最后用BcTester打开即可得到flag

最后得到答案:whale{BarC0d3_Pick}

五:我们不一样

知识点

双图对比 compare命令的使用

解题思路

首先使用Linux中的binwalk命令

我们可以看到有两张图 使用compare命令

看到图片左下角有一个非常小的变化,使用python脚本打印出来

# python2
#coding:utf-8

import Image
import random

img1 = Image.open("1.png")
im1 = img1.load()

img2 = Image.open("2.png")
im2 = img2.load()

a=''
i=0
s=''

for y in range(img1.size[1]):
for x in range(img1.size[0]):
if(im1[x,y]!=im2[x,y]):
print im1[x,y],im2[x,y]
if i == 8:   #以8个为一组 打印出字符串
s=s+chr(int(a,2))
a=''
i=0

a=a+str(im2[x,y][2])
i=i+1
s=s+'}'
print s

运行之后就会得到:

我们可以看到它的蓝色通道不一样,它是把蓝色像素转换成为0和18个位一组转换成字符,当然 flag也是在

最后的答案:whale{w3_ar3_d1ffe2en7}

六:黑白打字机

知识点

二维码、steganography、五笔编码

解题思路

把图片下载之后发现,不是正确的二维码,需要使用光影魔术手进行反色处理,再使用QR_Research就可以得到:

提示我‘你会五笔吗‘

图片的名字yhpargonagets反过来是steganography

百度得到这个工具(下载需要积分,不过我有)我们使用这个工具解密,勾选DecodeDecrypt,发现需要密码

之前提示我们的话,我们针对每个字都进行五笔解密查询(一定要86版五笔)

最终得到一串字符wqiywfcugghgttfnkcg,以此当密码输入,就会得到:

最后得到答案:venusctf{V3nus_St3gan0graph1_1s_g00d}

参考资料:

Image Steganography: https://download.csdn.net/download/qq_41187256/10682803

CTF Wiki: https://ctf-wiki.github.io/ctf-wiki/misc/introduction/

原文地址:https://www.cnblogs.com/lxz-1263030049/p/9690949.html

时间: 2024-08-03 23:09:21

蓝鲸安全CTF打卡题——第一期隐写术的相关文章

周刷题第一期总结(two sum and two numbers)

由于深深的知道自己是事件驱动型的人,一直想补强自己的薄弱环节算法,却完全不知道从哪里入手.所以只能采用最笨的办法,刷题.从刷题中遇到问题就解决问题,最后可能多多少少也能提高一下自己的渣算法吧. 暂时的目标是一周最少两道,可能会多做多想,工作再忙也会完成这个最低目标. Two sum: Given an array of integers, return indices of the two numbers such that they add up to a specific target. Y

git 打卡的第一天

因为某种原因,所以不得不重新巩固下前端的基础知识,从最基本的学习还得额外的学习新知识,倍感压力之大. 昨天初略学习下git,算是自己学习的一个新知识.简单记录下,希望四海八荒的大神看过来,有错的请指导. git下载安装地址  https://git-for-windows.github.io/   下载好之后记得配置环境变量. git的作用主要是将项目保存到git目录中. 主要分为三个块: working directory(工作目录)  本地上存放项目的目录. staging area 暂存放

2015-7,第一期培训跟进表

第一件事:请务必收藏本网页 培训地点:福州三中,图书馆楼,5层 培训守则: 1.学员每次培训,均需携带如下物品:水笔.荧光记号笔.纸质的笔记本.第一期培训教材. 2.不迟到,不早退,定位就座,严肃学习纪律,严禁携带零食进入机房. 3.认真做好课前预习.课堂笔记.和课后复习作业的工作. 4.所有的培训通知,以本页面的内容为准.请在每次出门上课前2小时,检查本页面,以获得最新的通知.请收藏本页面. (如果有临时性变动或调整,我不会一一打电话通知各位.) 凡是有问题要提问的同学,请先仔细阅读:<如何提

2016-7,第一期培训,教学跟进表

第一件事:请务必收藏本网页 培训地点:福州三中,图书馆楼,5层            教师联系方式(QQ & EMAIL):  [email protected] 培训守则: 1.学员每次培训,均需携带如下物品:水笔.荧光记号笔.纸质的笔记本.第一期培训教材,有<一本通>的也带来. 2.不迟到,不早退,定位就座,严肃学习纪律,严禁携带零食进入机房. 3.认真做好课前预习.课堂笔记.和课后复习作业的工作. 4.所有的培训通知,以本页面的内容为准.请在每次出门上课前2小时,检查本页面,以获

(转)2016年第一期云评测报告

我们在说起云服务的时候,厂商传递给我们的信息总是非常简单:打消所有的顾虑,我们会帮你处理所有的事情. 但是云服务真的能让你省心吗? 也许可以,但是还有一个更严峻的问题:当你面对众多云服务厂商,不懂套路的你如何选择?牵涉指标太多,专业的云性能指标也不那么易懂,到底哪款适合你? 没有关系这都不再是问题,继2015年<中国公有云用户体验报告>后,听云又一重磅报告<2016第一期云评测报告>正式发布.此次报告是听云iDaaS中心利用自主研发的听云Network产品,从模拟真实用户的角度对不

我是小白我怕谁【第一期】隐藏欺骗

我是小白我怕谁——目的:只是为了让不能快乐的人们笑笑罢了,不是病毒专栏哦~纯粹的用C#编的各种小软件罢了,这个过程中重点是思想,如果你们有什么好的思路可以跟我说哦,被我采纳后就会给你源码哦~ 你若有好的想法你便说出,我若认可便赏你源码! [正文] 愚人节快到了,以前都是把桌面截个图然后设为壁纸,再把图标给删了,让用户以为中病毒了,这么滴整人也未免太累了吧... 于是呢,我就搞了个小软件来实现类似的功能,当然了,我不能这么邪恶,也就打开后 鼠标左右切换,再模拟出一个透明的全屏的窗体咯,用户单击就没

豪斯课堂K先生全套教程淘宝设计美工第一期+第四期教程(无水印)

第一期课程包括 <配色如此简单> <配色的流程><对称之美>第二期课程包括 <字体的气质及组合><平衡及构图形式><信息的筛选与图片的额跳率> 第三期课程包括 <做简单的设计><图片的跳跃率><主体与层级的关系> 下载地址:http://www.fu83.cn/thread-284-1-1.html

《信息检索》第一期期末考试

爱课程网携手云课堂打造的顶尖高校在线学习平台 我的云课堂 爱课程网 中国大学MOOC 课程 学校 你好,imoocRen 搜索 信息检索 黄如花 公告 评分标准 课件 测验与作业 考试 讨论区 分享到 帮助中心 <信息检索>第一期期末考试  返回考试列表 本次得分为:28.00/30.00, 本次测试的提交时间为:2014-12-04. 1 ()是高校或科研机构的毕业生为获取学位而撰写的. (单选2分) 得分/总分 A. 学位论文  2.00 /2.00 B. 科技报告 C. 政府出版物

软件学院创新计划第一期技术夏令营开始啦!

2014年“创新计划”基地改革后第一期暑期技术夏令营来啦!!经历改革后的“创新计划”不仅拥有大量用来实践训练的项目资源,而且聚集了软件学院大量活跃的技术力量(原AiCre+Sigma+ChasingDream成员),在暑期夏令营的这三十天里,你可以和我们的队员一起研究自己热爱的技术,可以和志同道合的人做一直想要做的产品,还能在最后的产品竞赛中与其它技术达人进行切磋,相信你最终收获的不仅仅会是技术上的飞跃,在这个过程中还能结交到未来一起披荆斩棘的小伙伴,在夏令营表现出色的同学在获得物质奖励(这是一