这次比赛还是挺好玩的,尤其是 misc方向,ez_zip是挺好一题目,图片秘密也不错,如果一开始的附件就是好的就会更好了。

其他方向的解可以看我们A1natas的公众号。

关注A1natas喵,关注A1natas谢谢喵!

简单签到,关注:”杭师大网安“谢谢喵🐱

关注公众号得flag。

ez_zip

爆破得到密码是20250412。

解压后得到一个压缩包和一个sh512.txt,把txt中的那句话sha512一下,deflate明文攻击。

不知道为什么我的bk检测不出来这个文件,于是我用了arc

屏幕截图 2025-04-12 101622

然后又得到一个压缩包,是损坏的,要根据数据存储区修复了一下压缩包

可以用Bandizip无密码快速压缩一个例子,然后对照着把压缩包修复一下就行

dirEntry的flag.txt应该是少东西了,需要我们手动补上

屏幕截图 2025-04-13 173227 屏幕截图 2025-04-13 173330

修复完成后打开即可得到flag:TGCTF{Warrior_You_have_defeated_the_giant_dragon!}

屏幕截图 2025-04-13 173359

TeamGipsy&ctfer

预期解应该是查找文件,可以用diskgenius:

1ac79dc0-4137-458a-b1e4-f9c287333d41

桌面上有个mimi.txt,发现出题人用Docker起了一个MySQL,直接去/var/lib/docker目录下翻

发现在/var/lib/docker/overlay2/6ac971c2de3baa602bb4335d6899bbf1963140364ce248decc9557b2f49139f9/diff/root/.mysql_history中就有flag:HZNUCTF{0H!_YOu_are_really_the_TeamGipsy_ctfer}

4e32d7ce-031a-4e80-90a6-5d2b10178ba7

第二种也可以用取证大师,一样查找文件。

非预期应该是用string命令直接搜出来flag

1
strings Ubuntu-s00*.vmdk | grep HZNUCTF

(这个要跑一会的)

屏幕截图 2025-04-14 130112

你能发现图中的秘密吗?

这道题挺好的,就是老是有问题

先zsteg跑一下

屏幕截图 2025-04-13 173932

得到解压密码后解压得到一个pdf,一个图片

第一张pdf的左上角有第二部分的flag:

flag2=_attentive_and_conscientious}

这个改之前的,改之后的是用PS的隐藏图层隐藏的

屏幕截图 2025-04-13 120632

用010打开final_challenge2.png,发现有一块IDAT块不太正常

c8c52426-573d-4b7a-8cb4-c388a83b1052

提取出来,补上PNG文件头尾,然后爆破宽高即可得到另一段flag

屏幕截图 2025-04-13 173708

Tips:这里要注意把IDAT的前四个字节也一起复制过来,并且保持不变

因为四字节代表的是数据长度,这里如果出错,图片的数据长度就错了,因此再爆破宽高也没用了

两段flag合起来就是最后的flag:flag{you_are_so_attentive_and_conscientious}

948d611c-6920-4fb4-8b49-17f806516925

next is the end

直接脚本就行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env python3
import os
import sys

def traverse(path):
"""
递归遍历目录:
1. 如果当前目录中存在名为 'next_or_end' 的子目录,则进入该目录;
2. 否则:
- 如果目录中只有一个项目且该项目为文件,则返回该文件路径;
- 如果只有一个项目但是目录,则继续进入;
- 如果目录中有多个项目,则报错无法确定正确路径。
"""
while True:
# 若当前路径不是目录,则到达最终目标(通常是文件)
if not os.path.isdir(path):
return path

items = os.listdir(path)
# 如果当前目录中有 'next_or_end' 文件夹,则进入该目录
if "next_or_end" in items:
path = os.path.join(path, "next_or_end")
else:
# 当前目录没有 'next_or_end'
if len(items) == 1:
next_path = os.path.join(path, items[0])
if os.path.isdir(next_path):
# 如果唯一的项目还是目录,则继续进入
path = next_path
elif os.path.isfile(next_path):
# 如果唯一的项目是文件,则返回
return next_path
else:
print(f"遇到未知类型:{next_path}")
return None
else:
print(f"无法确定路径:目录 '{path}' 中存在多个项目:{items}")
return None

if __name__ == '__main__':
# 从命令行获取起始目录,若未传参数则默认为当前目录
start_path = sys.argv[1] if len(sys.argv) > 1 else "."
result = traverse(start_path)
if result:
print(f"最终目标路径:{result}")
if os.path.isfile(result):
# 如果目标为文件,读取并打印文件内容
try:
with open(result, 'r', encoding='utf-8') as f:
content = f.read()
print("文件内容如下:")
print(content)
except Exception as e:
print(f"读取文件时出错:{e}")
else:
print("最终目标不是一个普通文件。")
else:
print("未能找到最终目标。")

看到flag

a0c5ea4e-7705-4e4a-8d64-5351c9c7ef5e

where it is(osint)

谷歌识图

b7821666-222f-4a79-b959-dc9bd48ce7a0

点进去发现

屏幕截图 2025-04-12 111209

站点就是这个:港墘站

你的运气是好是坏?

笑死我了flag直接一试就试出来了:114514

这是啥o_o

下载得到一个无后缀的文件,文件头发现是gif,改成gif后拖进ps里看,发现最后几帧有散开的汉信码碎片。修复如下:

39f90506-aef0-4283-a135-6317525f3e77

扫码得到:time is your fortune ,efficiency is your life

猜测是帧间隔隐写,用puzzlesolver提出帧间隔放入python转ASCII码,得到flag

1
2
3
4
5
6
7
8
9
a= \['840', '710', '670', '840', '700', '1230', '890', '1110', '1170', '950', '990', '970', '1170', '1030', '1040', '1160', '950', '1170', '1120', '950', '1190', '1050', '1160', '1040', '950', '1160', '1050', '1090', '1010', '330', '1250'\]

s = ''

for i in a:

s+=chr(int(i)//10)

print(s)

TGCTF{You_caught_up_with_time!}