[TOC]

我整理这道题的目的是学习工具使用以及python练习。

首先解压压缩包得到两个txt文件:

image-20210925101038698

查看内容:

cipher.txt:

U2FsdGVkX1+WTSHujcCjvHj/gcwL0C7u37XtW4idGcpci3H913I=

flag.txt:

image-20210925101308826

看似正常,但是一复制的结果:

​​‌‍‍‎​​​​‌‍‌‌welcome to​​​​‌‎‍‌ ​​​​​‍​​wang​​​​‌‍‍‌​​​​‌‎​‎ ​​​​​‍​​​​​​‌‍‎‌​​​​‌‍‌​​​​​​‎‌‌​​​​​‍‍​​​​​‌‍‎‌ren​​​​‌‎‍‌​​​​​​​​​​​​‌‎​‎, hope you​​​​‌‍‌‌​​​​‌‍‎​ have​​​​‌‍‌‍​​​​​‍‍‌ a good time!

里面有一些奇奇怪怪的东西,

查看一下属性:

cipher.txt 52字节

flag.txt 506字节

原来是零宽字符,并且由flag.txt的名字可以得到应该是一个tip.

工具解密:

首先找到一个:

工具箱

但是不好使:

image-20210925101854362

接着就是第二个工具:

零宽度字符隐写 工具好使

终于找到:330k.github.io/misc_tools/unicode_steganography.html

image-20210925102623640

但是一定要调整好选项:

image-20210925102511055

得到tip:

key is md5(myself)

英文直译就是我本身,也就是说key可能为两个文件的md5校验和.

MD5加密:

首先对密文cipher.txt:

image-20210925103120098

5ee67c0319eb02f160a6a938f88140e4

再对零宽字符注入后的文本加密:

这里采用了脚本:

import hashlib
import os

def get_md5_01(file_path):
md5 = None
if os.path.isfile(file_path):
f = open(file_path,'rb')
md5_obj = hashlib.md5()
md5_obj.update(f.read())
hash_code = md5_obj.hexdigest()
f.close()
md5 = str(hash_code).lower()
return md5

if __name__ == "__main__":
file_path = r'D:\Users\丁辰就看见\Desktop\网刃杯\2021-09-10T094629.862457+0000签到\flag.txt'
md5_01 = get_md5_01(file_path)
print(md5_01)

image-20210925103534756

得到:

f71b6b842d2f0760c3ef74911ffc7fdb

outcome:

通过对cipher.txt的密文进行base解码发现salt加盐,猜测是DES3或者ribbit加密,尝试解密:

image-20210925104227791

成功得到flag.