1. Misc
1.1 UP&DOWN_Aussie
https://www.upsidedowntext.com/ 网站还原,找到关键代码

1 2 3
| sim = „2rz4o1iHzajwMbPv5Lng4akWkY„; mis = „a11kpfT7h9rEuWEtsZbykTv43„; nis = „1L33ThtkE3EHepg5x8pEEG„;
|
拼接得到
1
| 2rz4o1iHzajwMbPv5Lng4akWkYa11kpfT7h9rEuWEtsZbykTv431L33ThtkE3EHepg5x8pEEG
|
根据提示把第2,23,30,45,47位改成大写,第31位爆破得D,解base58即可
1
| 2Rz4o1iHzajwMbPv5Lng4aKWkYa11KDfT7h9rEuWEtsZByKTv431L33ThtkE3EHepg5x8pEEG
|
NSSCTF{c0oL_u_f1NiSH_tHe_upsidedown_@nD_SeE_tHe_f1@g}
1.2 ex_word
一个word文档,打开后没有发现有价值的信息。后缀改成zip进行解压。在media文件夹下发现文件theme.png
文件不能正常打开,用010查看文件头,发现文件头是50 4B,是个zip文件
修改后缀后打开,发现flag.xml得到一串emoji
解码网站:http://www.atoolbox.net/Tool.php?Id=937
1.3 kiana
解法一:beyondcompare直接导入分析

解法二:python脚本
1 2 3 4 5 6
| from PIL import Image import numpy as np
a = Image.open("...") b = Image.open("...") Image.fromarray(np.array(a) ^ np.array(b)).show()
|
NSSCTF{come_and_play_bh3}
1.4 PDF && PNG
打开pdf文件看到一堆像素,用binwalk分离
发现一个可疑文件

尝试每三个字节作为RGB进行绘图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| from PIL import Image import binascii
def read_hex_file(file_path): data_list = [] with open(file_path, 'rb') as f: while True: byte = f.read(1) if not byte: break data = int(binascii.hexlify(byte), 16) data_list.append(data) return data_list
def solve(data_list): x = 100 y = 100 im = Image.new('RGB', (x, y)) s = data_list count = 0 length = 1 a = () for i in range(y): for j in range(x): tmp = (s[count], s[count+1], s[count+2]) im.putpixel((j, i), tmp) if a == tmp: length += 1 else: if length > 1: print(chr(length), end="") length = 1 a = tmp count += 3 if count == (len(s) // 3): im.save('flag.png') exit()
data_list = read_hex_file('300') solve(data_list)
|
图片理论上用npiet可以解,但是不知道为啥解不出来

这里将连续相同颜色像素个数转为字符串得到
1
| d1d_u_f1nd_Th1s_KEy_F1l3
|
用wbs43open 解密即可
NSSCTF{u_can_use_wbstego_and_find_flag}
calligraphy
Baldi’s Basics
Matryoshka