cryptopals解密之旅2-2

本文深入探讨密码学挑战中的攻击方法,包括ECB模式下的密文篡改、CBC模式下的翻转攻击,以及PKCS#7填充检测与去除。通过具体题目解析,如profile_for函数的利用、CBC模式下的密文翻转,揭示了现实世界中密码系统的潜在漏洞。

0x00前言
本系列文章将带来cryptocals 这套密码学挑战的write-up.不同于通过上课或者看书的方式学习密码学,这些题目来自于现在生活中一些软件系统和密码构造中的缺陷。
本系列每一个题的wp基本是采用如下结构:题目解释、相关知识点讲解、代码实现及解释,运行测试。代码均采用python3实现,代码实现部分是参考国外大佬ricpacca的,结合自己的理解及成文需要进行部分修改。
第二套一共有八关。
第二套题目
在这里插入图片描述

主要是和分组密码相关的

0x05
第13题
在这里插入图片描述

要求写一个函数profile_for,传入profile_for(“foo@bar.com”),会生成
{
email: ‘foo@bar.com’,
uid: 10,
role: ‘user’
}
编码为email=foo@bar.com&uid=10&role=user
注意,不需要编码@,&等符号
接着生成随机的AES密钥,然后用这个密钥加密编码后的用户信息,再解密得到编码的结果,然后解析编码的结果。
题目要去我们仅使用user和密文,要求进行攻击,使得解密,解码后得到的role是admin,而不是user

这种攻击方法的原理利用的是ECB模式分块单独加密,之后按照顺序将计算所得的数据连在一起即可,各段数据之间互不影响的特点。通过将故意构造的密文替换原密文,从而篡改解密后的信息。

具体代码如下:
定义加密函数,使用AES-128-ECB加密编码过的用户信息,以及对应的解密函数

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值