Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)

一、漏洞原理

Apache Shiro框架提供了记住密码的功能,用户登录成功后会将用户信息加密,加密过程:用户信息=>序列化=>AES加密=>BASE64编码=>RememberMe Cookie值。如果用户勾选记住密码,那么在请求中会携带cookie,并且将加密信息存放在cookie的rememberMe字段里面,在服务器收到请求对RememberMe值,先进行base64解码然后AES解密在反序列化,这个加密过程如果我们知道AES加密的密钥,那么我们把用户信息替换成恶意命令,就导致了反序列化RCE漏洞。在shiro版本<=1.2.4中使用了默认的密钥,所以我们更容易触发该漏洞。

所以我们Payload产生的过程:

恶意命令=>序列化=>AES加密=>BASE64编码=>RememberMe Cookie值

二、Shiro特征

1、在网站请求登录时抓包,勾选rememberMe且密码错误时,返回包中会有rememberMe=deleteMe;

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第1张图片

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第2张图片

2、当网站请求登录时抓包,勾选rememberMe且账号密码正确会返回经过加密的rememberMe值。Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第3张图片 3、如果我们不进行登录去抓取数据包时,是没有rememberMe字段的。

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第4张图片

我们可以在Cookie处改写为rememberMe=1判断返回包是否返回rememberMe字段 

 Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第5张图片

三、环境搭建 

 本次实验使用vulhub进行环境搭建,需提前下载好vulhub。下载地址:https://vulhub.org/#/docs/

靶机:Ubuntu           ip:192.168.80.157

攻击机:kali              ip:192.168.80.133

下载docker环境前需提前进入漏洞目录下:

cd vulhub/shiro/CVE-2016-4437

使用命令安装环境

docker-compose up -d

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第6张图片

使用命令查看靶机ip地址

ifconfig

 Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第7张图片

 打开浏览器访问192.168.80.157:8080查看环境是否搭建成功,出现如图登录界面环境即搭建成功(用自己的ip地址加:8080)

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第8张图片

四、漏洞复现 

当我们根据上述Shiro特征判断使用Shiro框架时,就要去检测是否存在漏洞。这里我们使用jar工具去检测是否存在漏洞。

jar工具下载地址:Release ShiroExploit v2.51 Final · feihong-cs/ShiroExploit-Deprecated · GitHub

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第9张图片

1、下载好后,打开ShiroExploit.jar

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第10张图片

 2、输入目标IP地址,上述的登陆界面

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第11张图片

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第12张图片

点击下一步,选择dnslog.cn进行漏洞检测(ceye.io有时会检测不出来)

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第13张图片

点击下一步,当可以输入命令时代表存在该漏洞(如果提示不存在漏洞,可尝试切换下其他网络)

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第14张图片

 用kali虚拟机监听端口,jar工具选择简便操作反弹Shell(Linux),输入攻击机ip地址及端口。(根据自身选择,攻击机是Linux系统就选Linux,Windows就选Windows)

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第15张图片

 Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第16张图片

 返回kali查看,反弹Shell成功

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第17张图片

可以查看其他信息

Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)_第18张图片

你可能感兴趣的:(apache,web安全,网络安全)