WP - VNCTF 2021 - MISC
MISC
冰冰好像藏着秘密
打开rar提示错误,考点为——RAR伪加密。
RAR伪加密
RAR文件结构:
RAR 5.0签名由8个字节组成:0x52 0x61 0x72 0x21 0x1A 0x07 0x01 0x00
RAR 4.x 签名由7字节组成:
0x52 0x61 0x72 0x21 0x1A 0x07 0x00
第24字节此处为0,没有加密;为1,则rar被加密。
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread('FFT/FFT.png', 0) #直接读为灰度图像
f = np.fft.fft2(img) #做频率变换
fshift = np.fft.fftshift(f) #转移像素做幅度谱
s1 = np.log(np.abs(fshift))#取绝对值:将复数变化成实数取对数的目的为了将数据变化到0-255
plt.subplot(121)
plt.imshow(img, 'gray')
plt.title('original')
plt.subplot(122)
plt.imshow(s1,'gray')
plt.title('center')
plt.show()
happynewyear
蓝色的为谢赫密码,横竖线为中文代码。
压缩包密码为f87840bdddcc01e4,解开压缩包。
stegpy工具
stegpy pic -p
输入密码
本题使用脚本进行爆破图片的密码。
Do_you_like_Rhythm_Doctor
from Crypto.Util.number import *
data = open('main.rdlevel', 'r', encoding='UTF-8')
true = 1 #用于对true赋值,保证程序正常运行。因为字符串中存在ture,使用eval时会把ture当做变量。
flag = ''
row = {0:"", 1:"", 2:"", 3:""}
while 1:
s = data.readline()
if not s:
break
s = s.strip('\n')
if not "pulseType" in s:
continue
dic1 = eval(s[:-1]) #将每行数据转化为字典,由于每行最后均有逗号,故为s[:-1]
if dic1['pulseType'] == 'Square':
row[dic1['row']] = row[dic1['row']] + '0'
else:
row[dic1['row']] = row[dic1['row']] + '1'
print(row)
flag = int(row[0] + row[1] + row[2] + row[3], 2)
print(long_to_bytes(flag))
#{0: '011001100110110001100001011001110111101101111101', 1: '010101110011001100110001011000110110111101111101', 2: '011011010110010101011111010101100010011001111101', 3: '010011100101111101000011010101000100011001111101'}
#b'flag{}W31co}me_V&}N_CTF}'
interesting_fishing
crazyman_army是某安全公司的研究人员 这天他的其邮箱里发现了一封奇怪的邮件 你能帮助他找到其隐藏的信息吗
附件是第一部分的flag 图片是第二部分的flag 最后flag为 第一部分+第二部分(vnctf{*})
由提示知道,文件为邮件,将bin改为eml。
将附件和图片保存下来后,无更多信息,将eml文件使用notepad打开后,分别对base64解码。
根据文件名猜测使用oursecret加密,尝试解密。
打开vs项目工程,生成项目时报错,
从原压缩包捣鼓出来Browse.db文件后,看到加密文件,u-65432?此为RTF文件格式。
RTF格式中使用uN?表示一个unciode字符。u后跟一个带符号的16位十进制整数值接一个占位符,用?表示。N大于32767的话,则表示为负数。解混淆示例如下:
L"h" == 0x0068 == -(-0x0068) == -(0xFFFF+1-0x68) == -65432=u-65432?
decode.py:
a = [xx]
flag = ""
for i in a:
flag += chr(0xFFFF + 1 - int(i))
print(flag)
又得到一个压缩包,无法使用Advance Archive Password Recovery爆破密码,使用Accent RAR Password Recovery破解密码。
没什么思路,对word文档再解压,发现hideinfo.xml文件,010editor打开后发现存在零宽度字符隐写。
网站解密后,得到flag。