shiro漏洞复现(CVE-2016-4437)


1、Shiro反序列化漏洞(CVE-2016-4437,Shiro-550)

漏洞原理:

shiro框架在登录时,如果勾选了RememberMe的功能,关闭浏览器再次访问时便无需再次登录,此时cookie中会增加一个rememberMe字段,其 value 的值是经过序列化、AES加密和Base64编码后得到的结果。

服务端在接收到一个Cookie时,会按照如下步骤进行解析处理:

  1. 检索RememberMe Cookie的值
  2. 进行Base64解码
  3. 进行AES解码
  4. 进行反序列化操作

由于在第4步中的调用反序列化时未进行任何过滤,导致可以触发Java反序列化漏洞,进而在目标机器上执行任意命令。

由于使用了AES加密,利用该漏洞需要获取AES的加密密钥,在Shiro1.2.4版本之前AES的加密密钥为硬编码,其默认密钥的Base64编码后的值为 kPH+bIxk5D2deZiIxcaaaA==,于是就可得到Payload的构造流程:

恶意命令-->序列化-->AES加密-->base64编码-->发送Cookie

目前官方通过去掉硬编码的密钥每次生成一个密钥来解决其漏洞,但可以通过搜索引擎等方式收集到不同的密钥,提高对该漏洞的利用成功率。

影响版本:Shiro <= 1.2.4

yum install docker
systemctl start docker
docker pull medicean/vulapps:s_shiro_1
#重启dock
systemctl restart docker
docker run -d -p 8888:8080 medicean/vulapps:s_shiro_1
原本端口是8080给他换成8888

shiro漏洞复现(CVE-2016-4437)

环境搭建成功:

shiro漏洞复现(CVE-2016-4437)

 

 

爆破KEY

shiro漏洞复现(CVE-2016-4437)

 

使用如下命令对dock进行操作

列出dock容器
docker ps
docker exec -it <容器ID或容器名称> /bin/bash

 

shiro漏洞复现(CVE-2016-4437)

如果dock提示没有ifconfig这条命令,可以拷贝ifconfig到dock里面执行

先exit退出dock

 docker cp /usr/sbin/ifconfig a91cdfd23276:/usr/sbin/ifconfig

shiro漏洞复现(CVE-2016-4437)

 

THE END
分享
二维码
海报
shiro漏洞复现(CVE-2016-4437)
1、Shiro反序列化漏洞(CVE-2016-4437,Shiro-550) 漏洞原理: shiro框架在登录时,如果勾选了RememberMe的功能,关闭浏览器再次访问时便无需再次登录,此时cookie中会增加一个rememberMe字段,其 value 的值是……
<<上一篇
下一篇>>