填充提示攻击--破解CBC模式的AES加密

填充提示攻击--破解CBC模式的AES加密

本文参考
Padding Oracle Attack(填充提示攻击)详解及验证

今天看shiro的历史漏洞的时候看到了这样的内容
shiro 550 主要利用的就是shiro cookie中的rememberme字段在服务端解析的时候会经过base64解码-AES解密-反序列化的过程,既然存在反序列化的函数,那么就可能存在发序列化的漏洞,那么要实现反序列化的利用条件,上述的 三个过程中比较难控制的就是我们不知道AES加密方式的秘钥是多少。而该漏洞发生的位置正好就在这儿,在shiro 1.2.24版本以下,AES的解密秘钥是硬编码在代码中的,而shiro是一个开源程序,那么我们就可以收集各个版本的秘钥咯,然后挨个秘钥尝试,如果成功解密的话服务端会返回200,解密失败的话会返回500,通过观察返回的状态码就可以判断当前的秘钥,然后构造序列化字符串进行getshell 或者执行命令。
shiro 721 这个漏洞可谓是通杀了!!原理和shiro550是一样的,不过不需要知道AES的秘钥,只需要暴力猜解明文与密文就好了,通过观察服务端返回状态码,来判断解密是否成功,从而构造payload进行攻击,这个shiro 721就是填充提示攻击padding oracle attacking
我们来看看这种方式为啥能够成功
shiro使用的AES加密模式是CBC,这种加密模式的加密过程是这样的。
需要两个关键数据,一个是秘钥,一个是IV invoke vector—初始向量,初始向量的存在保证了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值