java执行命令 参考[本地命令执行 · 攻击Java Web应用-Java Web安全] (javasec.org) java 执行命令的函数调用链通过观察整个调用链我们可以清楚的看到exec方法并不是命令执行的最终点,执行逻辑大致是: Runtime.exec(xxx) java.lang.ProcessBuilder.start() new java.lang.UNIXProcess(xxx) UNIXPr 2025-05-17 #java安全
sql注入代码审计 出现注入原生 JDBC 是否存在直接拼接SQL 语句(使用+,或者使用 StringBUilderappend()),未经过预编译;Mybatis使用${} ;Hibernate、JPA默认是经过预编译的,但是如果开发自已编写的SQL语句,也需要进行检查;Java是强类型语言,当注入参数为long、int等数字类型时无法进行注入;找到危险函数位置之后,向上搜索,找函数、方法调用位置,直到请求入口( 2025-05-15 #java安全
spring-boot快速开始 什么是spring-boot Spring Boot是一个脚手架 用于快速搭建一个基于Spring的web应用,开箱即用!创建即可开发业务代码。 其设计目的是用来简化Spring应用的初始搭建以及开发过程 使用idea 创建一个sping-boot 项目 别选太新的,也不要选shapshot 版本 勾选上 需要那个版本勾选哪个数据库版本 jpa 是操作数据库的 然后点击创建 接下来配置数 2025-05-13 #spring-boot
jndi Jndi简介 使用12345678public class JndiInjectServlet { public static void main(String[] args) throws NamingException { InitialContext initialContext=new InitialContext();// initi 2025-05-12 #javaee
使用第三方组件 log4j在项目中使用log4j在pom.xml 中导入 12345678<dependencies> <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --> <dependency> <groupId>org.apach 2025-05-10 #javaee
Unsafe Unsafe首先unsafe 是不可以被实例化的,是内部的api 不允许外部直接调用 可能在以后的版本会被删除 如何创建一个unsafe类通过反射进行创建一个类 12345678910try { Constructor constructor = Unsafe.class.getDeclaredConstructor(); constructor.setAccessible( 2025-05-08 #java安全
listener 简介 监听ServletContext、HttpSession、ServletRequest等域对象创建和销毁事件 监听域对象的属性发生修改的事件 监听在事件发生前、发生后做一些必要的处理 创建监听器 监听器内置方法 监听器触发流程 创建一个监控session 的监听器创建servlet这个servlet 的作用是创建session 和销毁session 123456789101112131 2025-05-02 #javaee
过滤器 简介Filter被称为过滤器,过滤器实际上就是对Web资源进行拦截,做一些处理后再交给下一个过滤器或Servlet.处理,通常都是用来拦截reg转est进行处理的,也可以对返回的 response进行拦截处理。开发人员利用filter技术,可以实现对所有Web资源的管理,例如实现权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 过滤器也是可以实现内存马的 web 请求逻辑 创建过滤器的流程 2025-05-02 #javaee
操作数据库 mac 安装mysql1brew install mysql 启动 1mysql.service start jdbc环境配置jdbc 是java 本身操作数据库的一个方式 但是我们需要下载一个驱动 Maven Repository: mysql » mysql-connector-java (mvnrepository.com) 选择一个版本 进行下载 下载之后会有一个jar 包,然后 2025-04-22 #javaee
Servlet 创建一个get 响应 创建一个该API 的类文件 然后继承HelloServlet 编写逻辑发起一个get 请求 从请求获取name 参数如果有这个name 参数,那么就返回hello name 的字样没有这个name 参数那就提示传参错误 123456789101112131415161718192021222324package com.example.demo;import jakar 2025-04-22 #javaee