“东华杯”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}
  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
scikit-misc 是一个辅助库,包含了许多用于科学计算和数据分析的工具函数,十分方便实用。使用 scikit-misc 前,需要先安装这个库,可以利用命令行工具 pip 进行安装: pip install scikit-misc 使用 scikit-misc 的主要步骤包括导入库、选择需要使用的函数、创建数据并应用函数,下面以其中的几个常用函数为例进行介绍: 1. montage:拼接图像 montage 函数可以将多个图像拼合在一起,形成一个大图像。使用前需要导入相关的包: from skimage.util import montage 创建一个 10x10 的标准图像,并将其随机变色: import numpy as np a = np.zeros((10, 10, 3), dtype=np.uint8) a[ : , : , 0] = 255 * np.random.rand(10, 10) a[ : , : , 1] = 255 * np.random.rand(10, 10) a[ : , : , 2] = 255 * np.random.rand(10, 10) 将图像拼合起来,并显示出来: montage(a, padding_width=3, multichannel=True) plt.show() 2. random_noise: 添加噪声 random_noise函数可以向图像中添加随机噪声。使用前先需要导入相关的包: from skimage.util import random_noise 创建一张 100x100 的灰度图像,并将其添加随机噪声: import numpy as np from skimage.data import camera from skimage.io import imshow image = camera() noisy_image = random_noise(image, mode='gaussian', var=0.1**2) 显示原图像和添加噪声后的图像: imshow(image, cmap='gray') plt.show() imshow(noisy_image, cmap='gray') plt.show() 3. img_as_ubyte:将图像类型转换为 uint8 img_as_ubyte函数可以将图像类型转换为 uint8。使用前需要导入相关的包: from skimage import data, img_as_ubyte import matplotlib.pyplot as plt 读取一张图片并将其类型转换为 uint8: cat = data.chelsea() cat_u8 = img_as_ubyte(cat) 显示原图像和转换后的图像: _, axs = plt.subplots(nrows=1, ncols=2, figsize=(15, 5)) axs[0].imshow(cat, cmap='gray') axs[0].set_title('Original') axs[1].imshow(cat_u8, cmap='gray') axs[1].set_title('img_as_ubyte') plt.show() 以上就是三个 scikit-misc 的常用函数示例。使用这些函数可以使得科学计算和数据分析变得更加轻松愉快。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

末 初

谢谢老板!

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

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

打赏作者

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

抵扣说明:

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

余额充值