【攻防世界】5-1
⭕、知识点
未知文件类型分析/字节级异或/xortool工具的使用/异或脚本编写
一、题目
给了一个未知文件

二、解题
1、用file指令分析一下是什么东西,并没有得到结果

2、查看十六进制内容,都是不认识的字节码

3、试试用binwalk看看有没有隐写文件,也没有

4、查看属性,在字节文本里搜索关键字符串都无果,直方图统计如下,也没有思路

5、查看wp才知道可能是整体文件异或了某个密钥,需要找到密钥再与当前数据异或一次才能得到结果
6、下载xortool
pip install xortool
我使用的python3也能用
7、找了csdn上好几篇博客看用法,发现好多人都是乱写,干脆自己看帮助文档吧


8、先用命令分析一遍密钥最可能的长度

他已经帮忙分析出最可能的长度是13,但是密钥需要自己去尝试
9、看之前帮助文档,-b是暴力尝试选项,直接加上

提示已经把结果保存到当前目录下的csv文件里了,去看一下
10、

找到一个有意义的字段GoodLuckToYou,应该就是密钥
11、编写脚本把数据再和密钥异或一遍
Key = "GoodLuckToYou"
with open("badd3e0621ff43de8cf802545bbd3ed0","rb") as f:
with open("result.txt", "w",errors="ignore") as fp:
index = 0
data = f.read(1)
while data:
print(index)
fp.write(chr(ord(data) ^ ord(Key[index])))
data = f.read(1)
index = (index + 1) % 13
注意要加上errors="ignore",不然中间可能会报错
12、查看结果得到flag

三、答案
wdflag{You Are Very Smart}
四、总结
这道题为未知文件的分析提供了一种思路:xortool找到可能密钥并还原原数据

浙公网安备 33010602011771号