文章目录
- checkin
- project
- JumpJumpTiger
- where_can_find_code
题目附件请自取:
链接:https://pan.baidu.com/s/1T9nG-CDg_D8QYQZapuxucg
提取码:2wub
checkin
+AGYAbABhAGcAewBkAGgAYgBfADcAdABoAH0-
UTF-7
编码
flag{dhb_7th}
project
test.exe
附加了很多别的数据,运行之后发现生成了一个problem_bak.zip
解压problem_bak.zip
得到一个邮件文件
复制出来Python简单处理或者直接使用在线站:https://the-x.cn/zh-cn/base64/
from base64 import *
with open('jpg_base64.txt', 'r') as f:
lines = f.readlines()
base64_data = ''
with open('flag.jpg', 'wb') as f1:
for line in lines:
base64_data += line.strip()
f1.write(b64decode(base64_data))
得到一张丑不拉几的图片,尝试了很多jpg隐写,最后发现是OurSecret
隐写
但是没有密码,继续分析;在邮件里还有一些数据,一段Base64、一段Quoted-Printable编码
没有密码线索,都是文本,试一下零宽度字符隐写
两段话都隐写了密码
flag{f3a5dc36-ad43-d4fa-e75f-ef79e2e28ef3}
JumpJumpTiger
丢进ida64
分析,main
函数是个提示
大概就是个这么的意思,根据奇偶位分数据
在程序中还发现了大量字符串
iVB...
开头的很明显是PNG图片的base64数据开头,/9j/...
开头的很明显是JPG
的base64数据开头;从0开始奇数位是PNG
数据,偶数位是JPG
数据另外除了这部分base64数据之外,还发现了夹杂着0
的base64数据
先把base64数据提取出来,数据太长了,不便复制,使用脚本来提取比较方便,Python简单处理即可
from base64 import *
start_opt = 0x2600
middle_opt = 0x10DF00
end_opt = 0x7D4660
png_data = ''
jpg_data = ''
with open('jump.exe', 'rb') as f:
f.seek(start_opt)
part1_base64 = f.read(middle_opt - start_opt).decode()
for i in range(len(part1_base64)):
if i % 2 == 0:
jpg_data += part1_base64[i]
else:
png_data += part1_base64[i]
with open('flag.jpg', 'wb') as f1:
f1.write(b64decode(jpg_data))
with open('flag.png', 'wb') as f2:
f2.write(b64decode(png_data))
得到两张图,但是png
的图片数据并不完整;猜测另一部分的png图片的base64数据即为之前参杂0的数据
继续使用Python简单处理
from base64 import *
start_opt = 0x2600
middle_opt = 0x10DF00
end_opt = 0x7D4660
png_data = ''
with open('jump.exe', 'rb') as f:
f.seek(start_opt)
part1_base64 = f.read(middle_opt - start_opt).decode()
for i in range(len(part1_base64)):
if i % 2 == 0:
pass
else:
png_data += part1_base64[i]
f.seek(middle_opt)
part2_base64 = f.read(end_opt - middle_opt).decode()
for i1 in range(len(part2_base64)):
if i1 % 2 == 0:
pass
else:
png_data += part2_base64[i1]
with open('flag.png', 'wb') as f2:
f2.write(b64decode(png_data))
盲水印
看不清的话用stegsolve
调整一下
flag{72f73bbe-9193-e59a-c593-1b1cb8f76714}
where_can_find_code
format("Translate the letter J into I");
dpeb{e58ca5e2-2c51-4eef-5f5e-33539364deoa}
wbstego隐写
,无密码
得到云影密码
20810842042108421
Python简单处理转换即可
code = '20810842042108421'
code_list = code.split('0')
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
text = ''
for nums in code_list:
plus_num = 0
for n in nums:
plus_num += int(n)
text += alphabet[plus_num - 1]
print('[+]: {}'.format(text))
PS C:\Users\Administrator\Downloads> python code.py
[+]: BINGO
接下来就是利用一条这条语句
Translate the letter J into I
flag{d58af5d2-2a51-4dde-5e5d-33539364cdbf}