进入环境查看内容,如图:
提示flag在描述中,最终答案为:flag{th1s_!s_a_d4m0_4la9}
进入环境,下载附件,给的是一个pdf文件,我们直接打开如图:
按照经验,图片要么有内容,要么图片覆盖着什么东西,我们使用Acrobat DC打开,编辑pdf文档,并移除图片,如图:
最终的flag为:flag{security_through_obscurity}
进入环境,下载附件,打开后发现是一段乱七八糟看不懂的佛语:
其实就是一堆加密的话,使用在线佛曰加密地址:https://www.keyfc.net/bbs/tools/tudoucode.aspx,如图:
得到了解密信息,还是很乱,想到如来十三掌,想到ROT13,使用在线ROT13小工具进行解密:https://www.qqxiuzi.cn/bianma/kaisamima.php,如图:
还是乱,尝试base64解码:如图:
最终答案为:flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}
进入环境,下载附件,发现是一个gif图片,猜测需要提取帧,果断将图片放入Photoshop,如图:
发现第50帧有一张二维码,但是缺少定位符:
我们把他p上去,如图:
使用手机扫码二维码后,得到最终的结果为:flag{e7d478cf6b915f50ab1277f78502a2c5}
进入环境,下载附件,如图:
猜想可能pdf存在什么东西,使用AcrobatDC进行编辑,删除页面的内容,发现真的有一串字符,如图:
发现其中均为AB两种字符,猜测为摩斯电码,使用.代替A,使用-代替B,上代码:
s = 'BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB'
res = s.replace('A', '.').replace('B', '-')
print(res)
得到莫斯编码如下:
-.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-. .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- -- ...-- ..... ..... ....- --. ...--
使用在线莫斯电码翻译器http://www.all-tool.cn/Tools/morse/?&rand=b6f9a70b7d48e5f823c9b52c7cbb6af5,如图:
将其解码,按照题目要求转换大小写,最终的flag为:flag{1NV151BL3M3554G3}
进入环境,下载附件,如图,给的一个jar文件,需要电脑提前配置java环境,打开jar文件后,上下左右移动图标:
按照做题经验,其实就是需要在jar包中找到flag文件,我们使用vscode,并安装java的反编译软件decompiler,右键项目中的jar,选择decompile,如图:
搜索flag,发现内容如图:
有等号,估计是base64编码了,我们尝试解码,如图:
解码内容为:DajiDali_JinwanChiji
最终答案为:flag{DajiDali_JinwanChiji}
进入环境,下载附件,发现题目给出的是一个zip压缩包。打开压缩包观察后,发现只有黑色和白色方块,猜想可能是01编码,因此解题思路是将白色块认为0,黑色块认为1,进行编码。直接上代码:
import os
import PIL.Image as Image
# 对每一张图片进行判断,若为白色则记录为0,若为黑色记录为1
data = ''
filenames = os.listdir(r'C:\Users\Mr.fa\Desktop\gif')
filenames.sort(key=lambda x: int(x.split('.')[0])) # 防止文件名乱序
for filename in filenames:
path = os.path.join("C:\\Users\\Mr.fa\\Desktop\\gif\\", filename)
hands_mask = Image.open(path)
r, g, b = hands_mask.getextrema()
# 判断图片的色块
if r[1] == 255 and g[1] == 255 and b[1] == 255:
data += '0'
else:
data += '1'
print(data)
# 将0101代码按照八位一组,对应ASCII码表转成对应的字符
for i in range(0, len(data), 8):
byte = data[i: i + 8]
print(chr(int(byte, 2)), end='')
最终答案为:flag{FuN_giF}
进入环境,题目没有给附件,给了一串字符串,想必字符串中蕴含着秘密。而且字符串中的信息范围在0-F之间,也就是16进制的信息,猜测转数据对应ASCII码,但是ASCII码范围在0-128之间,因此尝试减去128,再转成字符得到最终的结果。直接上代码:
strings = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
flag = ''
# 尝试将字符两个一组,再缩小范围
for i in range(0, len(strings), 2):
hexdata = '0x' + strings[i] + strings[i + 1]
flag += chr(int(hexdata, 16) - 128)
print(flag)
因此最终答案为:hjzcydjzbjdcjkzkcugisdchjyjsbdfr
进入环境,下载附件,题目给出的是一个无后缀文件,题目提示linux的光盘文件,我们在kali系统下进行挂载:
mount f1fc23f5c743425d9e0073887c846d23 /mnt/
如果提示权限不够,请使用sudo。进入到/mnt/文件夹下,打开终端,使用命令查找关键词flag:
find | grep 'flag'
如果提示权限不够,请使用sudo。命令后如图:
找到文件后,打开flag,如图:
对其进行base64解码,如图:
最终答案为:flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}