知方号 知方号

Java审计框架基础 java审计日志

Java审计框架基础

前言:

好像已经很久没发过文章了,水一篇吧,最近在回头恶补java web的一些东西还有研究链条和内存马的一些东西,有些东西还没整明白,怕误人子弟,所以暂时就不发了。 后面等学明白了在发吧,先发一篇java审计需要的一些基础知识点吧,也能算是开发吧(也是笔者基于javaweb学习过程中自己基于自己的理解的一些学习笔记,所以可能存在一些问题,若有问题,希望批评指教),也希望能给入坑审计java审计的人一些参考吧。 而至于实战审计的一些文章,最近一段时间应该是不会打算发的,倒不是说没相关的素材,最近也确实审计了不少的系统,水了不少的cnvd证书和奖金,但是从自己本身而言还是不是特别喜欢写相关的东西,写基于系统本身的一些漏洞的代码审计吧,在某种角度而言其实就是路由+source+sink+trick,而基于这种漏洞本身而言,其实可能遇到的绕过技巧本身不会太多,最多也就是几个组合拳或者几个特性导致的一些问题。 而基于组件和链条相关的漏洞挖掘吧,能力仍有不足,所以基于这种角度还不如安心分享自己的一些知识笔记。 最后:虚心进步,慢慢成长。

正文: 1.JAVA SE java常用类库 java.applet 提供了创建applet需要的所有类java.awt.* 提供了创建⽤户界⾯以及绘制和管理图形、图像的类java.beans.* 提供了开发Java Beans需要的所有类java.io 提供了通过数据流、对象序列以及⽂件系统实现的系统输⼊、输出java.lang.* Java编程语⾔的基本类库java.math.* 提供了简明的整数算术以及⼗进制算术的基本函数java.rmi 提供了与远程⽅法调⽤相关的所有类java.net 提供了⽤于实现⽹络通讯应⽤的所有类java.security.* 提供了设计⽹络安全⽅案需要的⼀些类java.sql 提供了访问和处理来⾃于Java标准数据源数据的类java.test 包括以⼀种独⽴于⾃然语⾔的⽅式处理⽂本、⽇期、数字和消息的类和接⼝java.util.* 包括集合类、时间处理模式、⽇期时间⼯具等各类常⽤⼯具包javax.accessibility 定义了⽤户界⾯组件之间相互访问的⼀种机制javax.naming.* 为命名服务提供了⼀系列类和接⼝javax.swing.* 提供了⼀系列轻量级的⽤户界⾯组件,是⽬前Java⽤户界⾯常⽤的包注:在使⽤Java时,除了java.lang外,其他的包都需要import语句引⼊之后才能使⽤ 常用注解

格式:@注解名称(属性=属性值)@suerping(value=‘aaa’) 概念:也叫元数据。即对一些说明含义做了一些简写操作。 意义: ①编写文档:利用注解生成文档。 ②代码分析:利用注解对代码进行分析。 ③编译检测:让编译器进行基础的编译检测。如@Override就是一个编译检查注解

1.基础路由以及函数相关的注解@override 重写@WebServlet("/hello") servlet中的配置路由的注解2.spring引入相关注解@Component:创建此类的对象,并放入到Spring容器中。即给一个对象起对象名//@Component("xxxx"):创建此类的对象,取一个对象名,并放入到Spring容器中。@Autowired:默认自动按照类型在Spring容器寻找对象,并注入到属性中。//即在spring容器中寻找对象,然后注入到属性中,所以此时要注意:UserDao接口的实现类只能有一个。@Value//用于设置默认值,配置文件时使用//如@Value("${jdbc.url}") 配置jdbc的路由//@Value("#{T(java.lang.Math).PI}")或者配置springEL表达式3.作用范围注解@Scope(),设置bean的作用域。

案例使用: 1.给UserDao取对象名

@Repository("userDao")public class UserDaoImpl implements UserDao{ }

2.使用@Qualifier通知@Autowired 注解,注入对象名为userDao的对象

@Autowired@Qualifier("userDao")//即把属性userDao的注入到userDao的值中去private UserDao userDao;

注意点: ①与@Component相同注解含义的注解 @Service 业务层组件@Controller 控制层组件@Repository 数据层组件 JAVA WEB 四层

view(视图层)->controller层(控制值)–>server层(服务层)–>dao层(持久层)–>entity(实体层)

url获取以及转发实现代码(request作用域的实现) URL获取 具体的几种方法①request.getRequestURL();//获取除参数以外的所有路径②request.getRequestURI();//获取除参数以及域名以外的所有路径③request.getQueryString();/获取参数字符串④request.getMethod();//获取请求方式⑤request.getProtocol();//获取当前协议版本以http://www.baidu.com/aa/ssss?name=ice为例获取请求时的完整路径:Srting url= request.getRequestURL()+"";结果http://www.baidu.com/aa/ssss获取请求时的部分路径:String uri=request.getRequestURI();结果/aa/ssss获取请求时的参数字符串:String queryString=request.getQueryString();结果name=ice获取请求方式:Srting method=request.getMethod();结果GET/POST/PUT/DELETE获取当前协议版本:String protocol=request.getProtocol()结果HTTP/1.1获取项目站点名:String webapp=request.getContextPath()结果/aa (这个看Tomcat的配置)获取请求参数:request.getParmater("name")获取请求同一参数的所有值(复选框传值):request.getParmaterValues("name") 转发跳转 request.getRequestDispatcher("/jsp/index.jsp").forward(request, response);重定向response.sendRedirect("//jsp/index.jsp"); Spring 基础 体系结构 ①框架结构

核心容器(Core Container)AOP(Aspect Oriented Programming)设备支持(Instrmentation)数据访问及集成(Data Access/Integeration)Web报文发送(Messaging)Test测试 ②结构详细解释

Spring Core 核心容器模块 spring-core包和spring-beans包提供框架的基础部分,包括IOC和DI功能,BeanFactory是一个复杂的工厂模式的实现,无需编程就能实现单例,并允许开发人员将配置和特定的依赖从实际程序逻辑中解耦Context包建立在core和beans模块的基础之上,context继承了Beans模块的特性,并且增加了对国际化的支持,事件广播,资源加载和创建上下文等等spirng-expression包提供了强大的表达式语言 AOP模块

能够实现方法拦截器和切入点完全分离的代码。

事务消息模块数据访问

提供了数据访问,事务,对象关系映射等功能的集成

web

即将要学习的Springmvc框架包含其中,两外还包括了spring5新增的支持响应式编程的Web开发框架

测试

组合Junit或TestNG来实现单元测试和集成测试等功能

两大核心:

DI:依赖注入(Dependency Injection),作用:去除组件之间的依赖关系,实现解耦合。 含义:所谓依赖注入,是指工程中需要的组件无须自己创建,而是依赖于外部环境注入。 AOP:面向切面编程(filter以及代理问题即通过这个实现)

几个注意点 ①BeanFactory与ApplicationContext BeanFactory

BeanFactory是spring的核心接口,提供了IOC的配置机制,作用是实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。 使用的代码特点:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。