安全矩阵

 找回密码
 立即注册
搜索
查看: 2822|回复: 0

“迎圣诞,拿大奖”活动赛题

[复制链接]

12

主题

18

帖子

150

积分

注册会员

Rank: 2

积分
150
发表于 2020-4-2 20:15:55 | 显示全部楼层 |阅读模式
题目名称:I'M NOT KEY
题目内容:Download

解题思路:
本题是在用python实现的Des加密算法基础上进行了些许改动:
1.des类中的DECRYPT变量应该为0x01;
2.将des类中的__des_crypt函数判断补充完整:

  1. if crypt_type == des.ENCRYPT:
  2.     iteration = 0
  3.     iteration_adjustment = 1
  4. else:
  5.     iteration = 15
  6.     iteration_adjustment = -1
复制代码
3.在des类中添加decrypt函数:
  1. def decrypt(self, data, pad=None, padmode=None):
  2.     data = self._guardAgainstUnicode(data)
  3.     if pad is not None:
  4.         pad = self._guardAgainstUnicode(pad)
  5.     data = self.crypt(data, des.DECRYPT)
  6.     return self._unpadData(data, pad, padmode)
复制代码
题目给出提示当deskey正确时的DES.Kn,又知道Kn的生成全部是移位操作,因此可以直接逐位对出deskey应满足”x1000011x1101111x1100100x1101001x1101110x1000111x1100001x1111001“的形式。
发现x位恰好都为ASCII码最高位,因此另起为0,得出deskey为CodinGay。
通过DES.decrypt(correct)算出code为LafetoborasdileiShelvapelocrana0。
解得最终结果flag{R1p0s4Riposa_1n_p4c3_Nel1_illusi0n3_che_ha1_cr34t0}。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 00:32 , Processed in 0.013574 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表