漏洞介绍
名称: shiro 反序列化 (CVE-2016-4437)
描述: Apache Shiro是美国阿帕奇(Apache)软件基金会的一套用于执行认证、授权、加密和会话管理的Java安全框架。 Apache Shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值 > Base64解码–>AES解密–>反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。
影响版本
影响Shiro<1.2.5版本,当未设置用于“remember me” 特性的AES密钥时,存在反序列化漏洞,可远程命令执行。
解题过程
1.打开靶场环境,进入登录页面
2.挂上xray的代理,使用xray直接扫描,扫描出了此页面存在shiro反序列化漏洞
3.xray扫描出漏洞的页面
4.使用burp抓包,然后点击上图中的Copy,复制一下请求包,粘贴到burp中,并在最后加上
Testcmd: whoami
验证漏洞,返回了root,说明whoami被成功执行
5.将whoami改成获取flag的命令:
ls /tmp
修复方案
1.升级Shiro版本到1.2.5及以上
2.现在使用的rememberMe的AES加密密钥泄露,请自己base64一个AES的密钥,或者利用官方提供的方法生成密钥