C3P0链C3P0早期的数据库连接池工具包 控制管理数据库连接 避免重复多次创建销毁连接 创建一次数据源 就可以直接多次使用 依赖地址12345<dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version></dependency> DataSource数据源。为了提高系统性能,在真实的Java项目中通过不会使用原生的JDBC的DriverM
CB链CB 包:Apache Commons BeanUtils 在 Java 中,符合特定规范的类被称为 JavaBean(通常包含私有属性和 getter/setter 方法)。在处理这些对象时,经常需要频繁地反射赋值、拷贝属性,CB 包就是为了简化 JavaBean 的操作与反射而生的 提供了一系列javabean方法 在ysoserial中的CB链中 使用了BeanComparator作为PriorityQueue的中转类 来打CB链 核心类 PriorityQueue(触发类) BeanComparator PropertyUtils TemplatesImpl(sink
CVE-2021-44228 Log4j2复现log4j2的基本使用大名鼎鼎的log4j2来了 log4j2是apache提供的一个日志管理服务 记录日志信息 详细的介绍与使用可以看这篇文章 一文带你彻底掌握Log4j2 这个配置文件是网上随便找的一个 12345678910111213141516171819202122232425<?xml version="1.0" encoding="UTF-8"?><configuration status="info"> <Properties>
Mysqlmysql是最为常见的一种关系型数据库 日志写webshell可以执行mysql语句 利用条件 数据库用户有File权限 一般最好为root用户 secure_file_priv=’’ 为空 服务器上存在web服务 并且web服务目录可写 利用过程123show variables like '%log';set global general_log_file = '/var/www/html/1.php'; 然后执行一个sql语句 然后即可访问webshell 写webshell如果服务器下 有web服务且可以解析的话 可以尝
若依v4.6项目源码 查看pom.xml依赖组件首先看一下pom.xml依赖组件 fastjson 1.2.74版本有点高 还不是很会jackson 2.10.5 多个链子可以打 mysql 8.0.22 应该打不了 Shiro版本为1.7.0 thymeleaf version 3.0.11 做视图解析 snakeyaml version 1.25 解析yaml文件 登录部分定位到 /login 来到SysLoginController这里 获取前端输入的账号密码包装成token 获取subject对象 shiro里面指代的用户对象 携带token进入shiro的login方
fastjsonfastjson是阿里巴巴提供的高性能json数据解析库 可以高效的将java对象转换为json数据 也可以接收json数据转换为原来的javaBean 虽然是一个很好用的json数据解析库 但是漏洞频出 java安全必学的一个组件 fastjson原理配置依赖 12345<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.24</version>
最近刚开始学习代审 搞几个有洞的项目练练手 华夏erp 2.3项目源码 查看pom.xml依赖 是spring boot框架 看看使用哪些组件 使用了fastjson和低版本的mysql驱动 很明显这些版本都有漏洞 log4j经典漏洞组件 swagger做api文档 mybatis做java持久层 当然可能有些地方这些组件的使用在项目里面也没有漏洞 只是先看看有哪些组件而已 登录部分定位到/user/login 通过判断请求中是否携带session 判断用户是否登录 无则尝试登录 检查登录账号与密码 返回登录状态 上面switch case捕获异常 默认是登录成功 登录成功后
JNDI概述Java Naming Directory Interface,Java命名和目录接口,是SUN公司提供的一种标准的Java命名系统接口。通过调用JNDI的API应用程序可以定位资源和其他程序对象。JNDI可访问的现有目录及服务包括:JDBC(Java 数据库连接)、LDAP(轻型目录访问协议)、RMI(远程方法调用)、DNS(域名服务)、NIS(网络信息服务)、CORBA(公共对象请求代理系统结构) 命名服务/目录服务JNDI包括命名服务(Naming Service)和目录服务(Directory Service)。 命名服务:一种通过名称来查找实际对象的服务。例如
JDWPJPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。 java提供的一个可以远程调试java代码的javaagent 启动项: 1java -agentpath:jdwp=transport=dt_socket,server=y,suspend=y,address=8003 test transport=dt_socket 通过socket方式来连接调试 server=y,suspend=y 当前调试的文件为服务器 并且为暂停模式