0
点赞
收藏
分享

微信扫一扫

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



文章目录

  • checkin
  • project
  • JumpJumpTiger
  • where_can_find_code


题目附件请自取:
链接:https://pan.baidu.com/s/1T9nG-CDg_D8QYQZapuxucg 
提取码:2wub

checkin

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

+AGYAbABhAGcAewBkAGgAYgBfADcAdABoAH0-

UTF-7编码

  • UTF-7在线解码站:http://toolswebtop.com/text/process/decode/utf-7

flag{dhb_7th}

project

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


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


test.exe附加了很多别的数据,运行之后发现生成了一个problem_bak.zip 解压problem_bak.zip得到一个邮件文件

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


复制出来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))

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


得到一张丑不拉几的图片,尝试了很多jpg隐写,最后发现是OurSecret隐写

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


但是没有密码,继续分析;在邮件里还有一些数据,一段Base64、一段Quoted-Printable编码

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


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


没有密码线索,都是文本,试一下零宽度字符隐写

  • https://330k.github.io/misc_tools/unicode_steganography.html

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


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


两段话都隐写了密码

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

flag{f3a5dc36-ad43-d4fa-e75f-ef79e2e28ef3}

JumpJumpTiger

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


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


丢进ida64分析,main函数是个提示

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


大概就是个这么的意思,根据奇偶位分数据

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


在程序中还发现了大量字符串

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


iVB...开头的很明显是PNG图片的base64数据开头,/9j/...开头的很明显是JPG的base64数据开头;从0开始奇数位是PNG数据,偶数位是JPG数据另外除了这部分base64数据之外,还发现了夹杂着0的base64数据

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


先把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的数据

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


继续使用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))

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


盲水印

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


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


看不清的话用stegsolve调整一下

flag{72f73bbe-9193-e59a-c593-1b1cb8f76714}

where_can_find_code

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


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

format("Translate the letter J into I");
dpeb{e58ca5e2-2c51-4eef-5f5e-33539364deoa}

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


wbstego隐写,无密码

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


得到云影密码

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

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


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

  • http://rumkin.com/tools/cipher/playfair.php

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

flag{d58af5d2-2a51-4dde-5e5d-33539364cdbf}


举报

相关推荐

0 条评论