shiro反序列化及流量分析

2023-12-14 01:27:45

shiro反序列化

漏洞原理

在 Apache shiro 的框架中,执行身份验证时提供了一个记住密码的功能(RememberMe),如果用户登录时勾选了这个选项。用户的请求数据包中将会在 cookie 字段多出一段数据,这一段数据包含了用户的身份信息,且是经过加密的。加密的过程是:用户信息=>序列化=>AES加密(这一步需要用密钥key)=>base64编码=>添加到 RememberMe Cookie 字段。勾选记住密码之后,下次登录时,服务端会根据客户端请求包中的 cookie 值进行身份验证,无需登录即可访问。那么显然,服务端进行对 cookie 进行验证的步骤就是:取出请求包中 rememberMe 的cookie值 => Base64解码=>AES解密(用到密钥 key )=>反序列化。

靶场搭建

换源

vim /etc/apt/sources.list
中科大Kali镜像源
 
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

更新可用软件包列表

apt-get update

安装docker

apt-get install docker-compose
init 6

然后重启一下

启动docker

service docker start

拉取靶场镜像

docker pull medicean/vulapps:s_shiro_1

启动靶场映射到80

docker run -d -p 80:8080 medicean/vulapps:s_shiro_1

image-20231209160958978

演示过程

访问kali IP

登录

image-20231209161102699

当登陆页面有 remember me ,记住密码类似的字样需要考虑 shiro 反序列化漏洞

image-20231209161204479

shiro 550 用户名密码随便填写,勾选 Remember Me,点击登录,抓包

image-20231209161631975

使用shiro工具

java -jar shiro_attack-4.5.3-SNAPSHOT-all.jar

image-20231209162211100

按照从上到下的顺序点击

然后就可以利用功能了

image-20231209162444680

ip.dst==10.4.7.137

过滤过后找到http

发现流量特征,包内cookie后有利用链加密,很长

image-20231209164704636

base64 解码>解密>反序列化后为利用链的 exp

文章来源:https://blog.csdn.net/qq_58683895/article/details/134897618
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。