攻防世界-MulTzor
⭕、知识点
1、xortool的使用
一、题目
一个文本

二、解题
1、一看内容,不是base类型,应该是hex
2、010创建16进制写入,保存文件,正序逆序都没有信息
3、根据题目名称,感觉像是xor异或,使用xortool进行字频攻击
选取最常出现的字符为空格, 0x20

得到密钥
4、解密文本


已经还原了大部分明文,而且下面已经能看到flag雏形
仔细观察发现每间隔6个字符就会出现一个乱码,需要手动矫正这个密钥
5、这里能推断正确的字符应该是 i, 英文单词analysis

错误的密钥->正确的密文->错误的明文
a|xor a|xor a|xor
正确的密钥 正确的密文 正确的明文
现在已知正确的明文,将错误的明文与正确的明文异或后得到a(指代上图里的字母),再把a与错误的密钥异或即可得到修正后的密钥
这里推断+猜测就是密钥的第一个字节是错误的,需要进行修正
6、脚本修复,得到正确密钥
wrong_m = ","
true_m = "i"
a = ord(wrong_m) ^ ord(true_m)
wrong_key = "w"
true_key = a ^ ord(wrong_key)
print(true_key.to_bytes().hex())
得到密钥第一字节正确值为0x32,替换原先的0x77为0x32,重新解密

得到正确明文和flag

替换一下flag末尾的 "?"为"{"得到flag
三、答案
DDCTF{0dcea345ba46680b0b323d8a810643e9}
四、总结
复习了一下xortool工具,还有面对这种全是hex文本的题目要记住有这种解题思路。其实做题还想到是加密,文件没有给出密钥,就排除这种可能。

浙公网安备 33010602011771号