2025年6月训练题
ezmisc
将pass.txt解码得到隐写内容
Congratulations_babypass
password是后半段
babypass
解压后得到wrong flag.txt,Bandizip的版本没有,这里直接使用bkcrack进行明文攻击
./bkcrack.exe -C flag.zip -c "wrong flag.txt" -p "wrong flag.txt"
使用bkcrack明文攻击失败,这里老实打包用ARCHPR
Z*n%63
information
MMSSTV
flag{339aa03c75b3d67751d8128a1adcf9bd}
2025年7月训练题
编码解码
Base64 -> Base92 -> Binary
flag{56a185f19c571d34037bfffdbe8d2247}
ezmd5
在zip注释中得到hint
已知4b44f*c78b3*9f1258*52a5*88a5a7e*为解压密码的md5值加密结果
不完整的密码为 N*tE*s*
*为可打印字符
取解压密码得到flag
编写代码进行爆破
import hashlib
import string
import itertools
# 密码模板
template = list("N*tE*s*")
# 已知MD5的部分掩码(*表示未知字符)
target_md5_mask = "4b44f*c78b3*9f1258*52a5*88a5a7e*"
# 所有可打印字符
printable = string.printable.strip()
star_positions = [i for i, c in enumerate(template) if c == '*']
def match_mask(md5_result, mask):
for m, r in zip(mask, md5_result):
if m != '*' and m != r:
return False
return True
for chars in itertools.product(printable, repeat=len(star_positions)):
test_chars = template[:]
for pos, ch in zip(star_positions, chars):
test_chars[pos] = ch
candidate = ''.join(test_chars)
md5 = hashlib.md5(candidate.encode()).hexdigest()
if match_mask(md5, target_md5_mask):
print(f"[+] Found: {candidate} -> {md5}")
break
结果如下
[+] Found: N0tE@s9 -> 4b44f5c78b359f1258a52a5588a5a7ed
得到password
N0tE@s9
解压得到flag
flag{6333a53057352d0c17c337627c1334ed}
取证
在 新加卷/用户/Administrator/桌面 路径下找到 f1ag.zip ,压缩包注释得到hint
需要管理员的密码哈希值获得flag
提取出SAM和SYSTEM文件,但是 mimikatz 出了一点问题,没有提取出hash