由参加的一个安全大赛来的。flag文件在一个加密的zip文件里面,密钥为6-8位的数字。写了个python脚本进行暴力解压缩。
其中暴力破解的密码生成采用itertools库提供的函数来产生。即product函数,product函数为求迭代器的笛卡尔积。
如下:
list1 = [1,2,3]
list2 = [a,b]
for i in product(list1,list2):
print i
输出为(1,a)
(1,b)
(2,a)
(2,b)
(3,a)
(4,b)
则6位的密码产生序列相当于product('1234567890', 6)。即6个'1234567890'序列产生的笛卡尔积。对应的生成密码函数和解压缩zip包的程序如下所示:
运行速度还挺快,如下是运行结果: