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
演示过程
访问kali IP
登录
当登陆页面有 remember me ,记住密码类似的字样需要考虑 shiro 反序列化漏洞
shiro 550 用户名密码随便填写,勾选 Remember Me,点击登录,抓包
使用shiro工具
java -jar shiro_attack-4.5.3-SNAPSHOT-all.jar
按照从上到下的顺序点击
然后就可以利用功能了
ip.dst==10.4.7.137
过滤过后找到http
发现流量特征,包内cookie后有利用链加密,很长
base64 解码>解密>反序列化后为利用链的 exp
文章来源:https://blog.csdn.net/qq_58683895/article/details/134897618
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!