Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。
使用 vulhub 可以快速搭建漏洞环境。
cd /vulhub/shiro/CVE-2016-4437
docker-compose up -d
首先,使用BurpSuite进行抓包,在请求包中的cookie字段中添加rememberMe=123;
,看响应包header中是否返回rememberMe=deleteMe
值,若有,则证明该系统使用了Shiro框架。
j43f
在BurpSuite的扩展(Extend)中安装并启动Shiro检测插件
当BurpSuite抓取到Shiro的数据包时会自动进行检测Key,当发现存在Shiro默认key时会有相应的告警
使用工具检测 Shiro-550 漏洞
选择漏洞检测方式
注意在使用回显进行漏洞检测时,会在目标网站上自动生成一个文件其中记录了执行命令的结果,所以不建议在正式环境测试中使用这种检测方式。
检测到目标存在Shiro反序列化漏洞
使用shiro_attack进行爆破Shiro密钥检测漏洞,当目标系统存在漏洞时,检测结果如下图所示:
使用shiro_attack工具可以直接执行命令并回显结果
首先,在kali上开启nc监听本地1111端口,用来接收反弹的Shell
nc -l -p 1111
然后用ShiroExploit工具的反弹Shell给Kali(192.168.126.128)的1111端口。
上述工具利用成功后,在Kali上成功接收到了反弹的Shell