【ECB模式攻击原理】
(参考https://zachgrace.com/posts/attacking-ecb/)
ecb模式使用相同的key分块对明文分别进行加密,相同的明文获得相同的密文输出
根据这一特性,可以构造如下数据进行攻击:
首先输入blocksize-1的填充,这样未知字符串的第一个字符将落到填充块的最后一个字节:
XXXXXXAA AAAAAAAA AAAAAAXX
XXXXXXBA AAAAAAAA AAAAAAAX
XXXXXXBB AAAAAAAA AAAAAAAA
这时会得到填充块的一个密文输出,爆破最后一个字节,直到产生与刚才相同的密文输出,就可以确定未知字符串的一个字节,重复这个过程就可以得到完整的未知字符串。
【攻击方法】
向包含未知字符串的明文中插入数据,其实也是枚举验算的过程:
1.获取未知字符串的第一位
比输入name为111111111111,
服务器生成未知字符串"hello, 111111111111, your mission's flag is: FLAGXXXXXX"的用ecb加密过的字符串S1给我们,
其中FLAGXXXXXX是我们希望得到的flag,通过观察题