shiro反序列化及流量分析

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

相关推荐

  1. Shiro-550序列漏洞

    2023-12-09 23:58:03       19 阅读
  2. shiro序列与fastjson序列漏洞原理

    2023-12-09 23:58:03       71 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-09 23:58:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-09 23:58:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-09 23:58:03       82 阅读
  4. Python语言-面向对象

    2023-12-09 23:58:03       91 阅读

热门阅读

  1. 有限元分析-强度理论

    2023-12-09 23:58:03       56 阅读
  2. 网络函数和文件管理函数

    2023-12-09 23:58:03       46 阅读
  3. 连通分量提取

    2023-12-09 23:58:03       61 阅读
  4. chmod 在Linux原生应用开发过程中的简单应用

    2023-12-09 23:58:03       56 阅读
  5. uniapp 开发app项目步骤

    2023-12-09 23:58:03       49 阅读