1.this_is_flag

题目描述:Most flags are in the form flag{xxx}, for example:flag{th1s_!s_a_d4m0_4la9}

看题目描述就行了。

2.pdf

题目

菜猫给了菜狗一张图,说图下面什么都没有

题目给了一个pdf文件,打开后是一张图片

直接用pdf编辑器或者转成word,把图片移开就能看到flag

3.give_you_flag

题目

菜狗找到了文件中的彩蛋很开心,给菜猫发了个表情包

题目给了一个gif动图

解题

这种无非就是隐写,先用stegsolve按帧数去看

果然发现在50帧的时候有张二维码

发现二维码缺少三个小方块,而这些小方块被称为定位图案,用于标记二维码矩形的大小,用三个定位图案就可以标识并确定一个二维码矩形的位置和方向。

我们可以用图片工具手动补全或者把其他二维码上的方框截下加上去就补全了,然后扫码得到flag(我用的系统画图工具画的,有点丑,哈哈哈)

补充知识点

4.坚持60秒

题目

菜狗发现最近菜猫不爱理他,反而迷上了菜鸡

下载附件之后是一个·jar的包,打开发现是一个游戏,我们本来就是白帽子,怎么可能会好好玩呢?

解题

我用Java Decompiler对其进行反编译,在其中一个class文件中看到了flag{},但是细心看会发现里面的内容是经过base64加密的,然后解密得到flag

还有个方法就是解压jar的包,然后用软件直接搜索flag就能查找到

5.GIF

题目

菜狗截获了一张菜鸡发给菜猫的动态图,却发现另有玄机

下载附件压缩包解压后是一大堆黑白图片

分析了半天图片没有啥隐写,一度陷入了僵局。后来一想,这不会是二进制吧,看了看,发现一共104张图片,是8的倍数,可以是8位一个字节,说明很可能是二进制。并且一看图片第一二张已经给我们提示了,于是白色代表0,黑色代表1,写个脚本

message=[0b1100110,0b1101100,0b1100001,0b1100111,0b1111011,0b1000110,0b1110101,0b1001110,0b1011111,0b1100111,0b1101001,0b1000110,0b1111101]
 
for i in range(len(message)):
    print(chr(message[i]),end = "")
 
#得出结果:   flag{FuN_giF}

6.掀桌子

题目

解题

先观察给出的报文,发现和16进制有点像(0~f)

于是选择两两分组,两位16进制代表一个字节。分组完成后再进行转换,突然发现所有字节都大于128,ASCII码的范围是0-127,于是我选择每一个字节都减去128,这样就得出了答案

运行代码,得出答案,进行提交。 

第二种解法

用JPK转码:

先转成七位二进制(inradix为16,outradix为2,BitsPerBlock为7):

为什么是七位呢,因为ASCII码就用到7位。然后再转成ASCII码:

最后加上flag{}就可以得到flag


一个热爱技术的白帽子