vulhub漏洞复现-Apache Shiro(CVE-2016-4437) 反序列化漏洞复现

Apache Shiro

Apache Shiro是一个强大且易用的Java安全框架,用来执行身份验证、授权、密码和会话管理。Apache Shiro框架提供了记住我(RememberMe)的功能,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问。
在这里插入图片描述

思路

Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManaer类中将cookie中rememberMe字段内容分别进行序列化、AES加密、Base64编码操作。在识别身份的时候,需要对Cookie里的rememberMe字段解密。根据加密的顺序,不难知道解密的顺序为:获取rememberMe cookie,base64 decode、解密AES(加密密钥硬编码)、反序列化
而问题就出在AES加密的密钥Key被硬编码在代码里,这就意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者构造一个恶意的对象,并且对其序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。

漏洞复现

首先一个burp上的扫描插件,有了这个插件不需要每个网站去打开自己找是否存在rememberMe=deleteMe的Apache Shiro,插件会自动扫描
BurpShiroPassiveScan
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

这里直接使用搞好的软件去打
ShiroExploit

在这里插入图片描述

首先抓包,发现这里是rememberMe=deleteMe,确定是apache shiro搭建的(这里漏洞复现,这一步好像有点多余。)

在这里插入图片描述
无脑next,它就会自己暴力AES KEY以及Gadget
在这里插入图片描述

emmm,还是得本地搭建吗。。。
在这里插入图片描述
参考(CVE-2016-4437) Apache Shiro 反序列化漏洞 复现
第二个利用工具
ShiroScan

在这里插入图片描述
个人觉得这里应该存在一个可用的Key,然后在后面的命令执行处使用
在这里插入图片描述
参考shiro 反序列化漏洞的检测与利用-burpsuite被动扫描联动篇

最后一个POC脚本

Shiro_exploitPOC

命令执行:python3 shiro_exploit.py -t 3 -u http://----:8080 -p "touch /tmp/test"

建议本地搭建环境

参考Apache Shiro 反序列化漏洞复现(CVE-2016-4437)

猜你喜欢

转载自blog.csdn.net/weixin_54648419/article/details/120901061