1by1Crypto 未解决

分数: 0 金币: 0
所属赛事: HackINI 2022
题目作者: 未知
一  血: harry
一血奖励: 0金币
解  决: 15
提  示:
描  述:
> It is proven that with only 3 steps, we can retrieve the flag > I dare you to do it
评论
lunarbyside 1月前

然后每个字母、数字、下划线,花括号分别填充到16字节(AES一个明文块大小,类似于a0F0F0F...或b0F0F0F0F...)并分别与IV异或(模仿CBC加密第一个明文块,向量统一为IV),然后拼接到一起形成一个大字符串,再把字符串从字节转十六进制,用于第三步。

回复 0

lunarbyside 1月前

最后整个大字符串在第三步进行ECB加密,就能得到字符与密文的映射关系,此时将一开始给的encrypt flag enc查表还原为字符,每32个字符转换为一个字符,就能得到flag了。😄

回复 0

lunarbyside 1月前

首先,注意到encrypt_flag_enc中有大量重复字符串,判断是单个字符填充后进行ECB加密得到的(思考过程省略1000字),默认使用PKCS#7填充。因此,第一步构造两个已知明文块,产生两个密文块。第二步使用第二个密文块,解密得到错误明文块。将第二个已知明文块与第一个密文块异或,再与错误明文块异或,就得到了初始向量IV。

回复 0

lunarbyside 1月前

看了答案,有些懂了。在终端使用启动场景后给的命令,会返回一大串encrypt flag enc,让你三步得到flag。第一步让你输入明文,进行CBC加密,返回密文。第二步让你输入密文,进行CBC解密,返回明文。第三步让你输入明文,进行ECB加密,返回密文。

回复 0

WriteUp

image
hurt6

2 金币

评分(0)

暂无评分

解题动态

rouzongbaba 攻破了该题 7天前
rachel207 攻破了该题 8天前
19011343447 攻破了该题 26天前
nuxe 攻破了该题 1月前
lunarbyside 攻破了该题 1月前
cheyenne 攻破了该题 4月前
hurt6 攻破了该题 4月前
XmN<=GzR 攻破了该题 6月前
2661142336 攻破了该题 7月前
13998158245 攻破了该题 10月前
wangjf 攻破了该题 12月前
timerain 攻破了该题 1年前
晨曦 攻破了该题 1年前
17M114 攻破了该题 1年前
harry 获得了一血 1年前
问题反馈