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)

 

0x01 阅读须知
技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
THE END
分享
二维码
海报
shiro漏洞复现(CVE-2016-4437)
1、Shiro反序列化漏洞(CVE-2016-4437,Shiro-550) 漏洞原理: shiro框架在登录时,如果勾选了RememberMe的功能,关闭浏览器再次访问时便无需再次登录,此时cookie中会增加一个rememberMe字段,其 value 的值是……
<<上一篇
下一篇>>