2024-05-14
980 字
3 分钟
幽默的Commons-Collections6调试
幽默的Commons-Collections6调试事情是在考完期中之后,同学在调式cc6链的时候发现了奇怪问题。
(下面写的过于详细了。。。)
问题发现(在尝试找出cc6中 为什么LazyMap 最后要使用remove的时候)就是lazyMap中放的是空的HashMap之前代码并没有向hashMap中写入任何东西,为什么在这里却必须要remove掉’aaa’才能触发链子呢
于是调试在创建TiedMapEntry的地方打上断点,跟进赋值完map的时候还算是正常可是到下一步参数map的size大小怎么突然由1变成2了?又没有对map进行任何操作这里LazyMap为什么多了且是什么时候多了一个键值对
2024-05-13
4.4k 字
20 分钟
Tomcat 漏洞复现集合
Tomcat 漏洞复现集合Tomcat是常见的web中间间,常用于javaweb
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tom
2024-05-06
2.7k 字
12 分钟
shiro550
shiro550简介Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。Apache Shiro基本功能点如下图所示:
Authentication:身份认证 / 登录,验证用户是不是拥有相应的身份;
Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;
Session Manageme
2024-05-04
3.4k 字
14 分钟
java Agent
java AgentJDK1.5开始,Java新增了Instrumentation(Java Agent API)和JVMTI(JVM Tool Interface)功能,允许JVM在加载某个class文件之前对其字节码进行修改,同时也支持对已加载的class(类字节码)进行重新加载(Retransform)。利用Java Agent这一特性衍生出了APM(Application Performance Management,应用性能管理)、RASP(Runtime application self-protection,运行时应用自我保护)、IAST(Interactive Applicat
2024-04-27
3.1k 字
12 分钟
fastjson高版本补丁绕过
fastjson高版本补丁绕过补丁分析1.2.25在 Fastjson1.2.25 中使用了 checkAutoType 来修复1.2.22-1.2.24中的漏洞,其中有个 autoTypeSupport 默认为 False。当 autoTypeSupport 为 False 时,先黑名单过滤,再白名单过滤,若白名单匹配上则直接加载该类,否则报错。当 autoTypeSupport 为 True 时,先白名单过滤,匹配成功即可加载该类,否则再黑名单过滤。对于开启或者不开启,都有相应的绕过方法。
在获取@type的值后,1.2.24以后的版本新增函数checkAutoType,在类加载之前检查是
2024-04-26
2k 字
10 分钟
fastjson1.2.24反序列化漏洞
fastjson1.2.24反序列化漏洞影响版本Fastjson 1.2.x系列的1.2.22-1.2.24版本。
TemplateImpl的利用链条件
服务端使用parseObject()时,必须使用如下格式才能触发漏洞: JSON.parseObject(input, Object.class, Feature.SupportNonPublicField);
服务端使用parse()时,需要 JSON.parse(text1,Feature.SupportNonPublicField)
流程
pocString evilCode = Base64.encodeBase64String(C
2024-04-25
2.5k 字
9 分钟
Linux应急响应
Linux应急响应概述关键目录思路:账号安全 -> 历史命令 -> 检查异常端口 -> 检查异常进程 -> 检查开机启动项 -> 检查定时任务 -> 检查服务 -> 检查异常文件
主机排查常见指令端口# 查找不常用的监听端口 :netstat -anpiftop# 运行的进程监听了端口 :lsof -ilsof -nPi tcp:443# 使用ss命令查看TCP协议:ss -anpt# 使用ss命令查看UDP协议:ss -anpu# 使用 tcpdump 分析:tcpdump -i {网卡名} host {本地IP} and udp port {本地端
2024-04-24
4.2k 字
16 分钟
JNDI注入
JNDI注入JNDI(Java Naming and Directory Interface)是Java提供的Java命名和目录接口。通过调用JNDI的API可以定位资源和其他程序对象。JNDI是Java EE的重要部分,JNDI可访问的现有的目录及服务有:JDBC、LDAP、RMI、DNS、NIS、CORBA
简介JNDI提供统一的客户端API,并由管理者将JNDI API映射为特定的命名服务和目录服务,为开发人员查找和访问各种资源提供了统一的通用接口,可以用来定义用户、网络、机器、对象和服务等各种资源。简单来说,开发人员通过合理的使用JNDI,能够让用户通过统一的方式访问获取网络上的各种资
2024-04-12
6.7k 字
29 分钟
javassist
Javassist介绍Javassist(Java 编程助手)使 Java 字节码操作变得简单。它是一个用于在 Java 中编辑字节码的类库。它使 Java 程序可以在运行时定义新类,并在 JVM 加载它时修改类文件。与其他类似的字节码编辑器不同,Javassist 提供了两个级别的 API:源级别和字节代码级别。如果用户使用源代码级 API,则他们可以在不了解 Java 字节码规范的情况下编辑类文件。整个 API 仅使用 Java 语言的词汇表进行设计。甚至可以以源文本的形式指定插入的字节码。Javassist 可以即时对其进行编译。另一方面,字节码级别的 API 允许用户像其他编辑器一样直
2024-04-11
1.5k 字
6 分钟
Rome链
Rome反序列化
简介ROME 是一个可以兼容多种格式的 feeds 解析器,可以从一种格式转换成另一种格式,也可返回指定格式或 Java 对象。ROME 兼容了 RSS (0.90, 0.91, 0.92, 0.93, 0.94, 1.0, 2.0), Atom 0.3 以及 Atom 1.0 feeds 格式。Rome 提供了 ToStringBean 这个类,提供深入的 toString 方法对JavaBean进行操作。
漏洞原理漏洞核心应该是ROME框架里的com.sun.syndication.feed.impl.ToStringBean类利用反射执行了invoke方法,并且参数可控
2024-03-25
1.3k 字
4 分钟
反向传播
反向传播
简介反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。反向传播要求有对每个输入值想得到的已知输出,来计算损失函数梯度。因此,它通常被认为是一种监督式学习方法,虽然它也用在一些无监督网络(如自动编码器)中。它是多层前馈网络的Delta规则的推广,可以用链式法则对每层迭代计算梯度。反向传播要求人工神经元(或“节点”)的激励函数可微。
梯度下降与损失函数 损失函数,(Loss
2024-03-18
3.1k 字
11 分钟
RMI机制
RMI机制
简介 RMI(Remote Method Invocation)为远程方法调用,是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同计算机中,它的底层是由socket和java序列化和反序列化支撑起来的。 它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。RMI全部的宗旨就是尽可能简化远程接口对象的使用。
我们知道远程过程调用(Remote Procedure Call, RPC)可以用于一个进程调用另一个进程(很