“东华杯”2021年大学生网络安全邀请赛 暨第七届上海市大学生网络安全大赛线上赛MISC-Writeup


题目附件请自取:
链接: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}
评论 8 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:博客之星2021 设计师:Hiro_C 返回首页

打赏作者

末 初

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值