友情链接:
0x00 漏洞描述0x01 影响版本0x02 漏洞原理在服务端接收cookie值时,按照如下步骤来解析处理:1、检索RememberMe cookie 的值2、Base 64解码3、使用AES解密(加密密钥硬编码)4、进行反序列化操作(未作过滤处理)0x03 漏洞原因大概意思是,shiro在登录处提供了Remember Me这个功能,来记录用户登录的凭证,然后shiro使用了CookieRememberMeManager类对用户的登陆凭证,也就是Remember Me的内容进行一系列处理:使用Java序列化 ---> 使用密钥进行AES加密 ---> Base64加密 ---> 得到加密后的Remember Me内容同时在识别用户身份的时候,需要对Remember Me的字段进行解密,解密的顺序为:Remember Me加密内容 ---> Base64解密 ---> 使用密钥进行AES解密 --->Java反序列化问题出在AES加密的密钥Key被硬编码在代码里,这意味着攻击者只要通过源代码找到AES加密的密钥,就可以构造一个恶意对象,对其进行序列化,AES加密,Base64编码,然后将其作为cookie的Remember Me字段发送,Shiro将RememberMe进行解密并且反序列化,最终造成反序列化漏洞。0x04 漏洞利用条件0x06 漏洞特征0x07 环境搭建0x08 漏洞复现成功后查看记录,记录格式为 {{key}}.{{module}}.dnslogurl可知成功的key为kPH.bIxk5D2deZiIxcaaaA==,模块为CommonsBeanutils2 因为key中包含==/+等符号.0x09 漏洞插件检查0x10 漏洞修复
上一篇:没有了
下一篇:中学英语语法主谓一致