脚本宝典收集整理的这篇文章主要介绍了【基础概念大总结】— 网络安全 Java 基础知识大汇总,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
这一篇,我们介绍一下:Java语言中存在有哪些安全漏洞。
我们在渗透测试中,可以如何利用这些漏洞。
那这一篇,首先全面总结一下JAVA中的基础概念。
上课了~~~上课了~~·
目录
JVM
JDK
JMX
JNI
JNA
OGNL
IO模型
BIO
NIO
AIO
反射
简介
相关类
Class相关
Field相关
Method相关
Constructor
JVM是Java平台的核心,以机器代码来实现,为程序执行提供了所需的所有基本功能,例如字节码解析器、JIT编译器、垃圾收集器等。由于它是机器代码实现的,其同样受到二进制文件受到的攻击。
JCL是JVM自带的一个标准库,含有数百个系统类。默认情况下,所有系统类都是可信任的,且拥有所有的特权。
Java开发工具包(Java Development Kit,JDK)是Oracle公司发布的Java平台,有标准版(Standard Edition,Java SE)、企业版(Enterprise Edition,Java EE)等版本。
在最开始,JDK以二进制形式发布,而后在2006年11月17日,Sun以GPL许可证发布了Java的源代码,于是之后出现了OpenJDK。
JMX(Java Management Extensions,Java管理扩展)是一个为应用程序植入管理功能的框架,主要为管理和监视应用程序、系统对象、设备和面向服务的网络提供相应的工具。JMX可以远程读取系统中的值、调用系统中的方法。在JMX未配置身份验证或JDK版本过低存在反序列化漏洞时,可能会导致远程代码执行。
JNI (Java Native Interface) 是Java提供的和其他语言交互的接口。
JNA (Java Native Access) 是在JNI上的框架,用于自动实现Java接口到native function的映射,而不需要另外编写JNI代码。
OGNL(Object-Graph Navigation Language,对象导航语言)是一种功能强大的表达式语言,通过简单一致的表达式语法,提供了存取对象的任意属性、调用对象的方法、遍历整个对象的结构图、实现字段类型转化等功能。
Struts2中使用了OGNL,提供了一个ValueStack类。ValueStack分为root和context两部分。root中是当前的action对象,context中是ActionContext里面所有的内容。
Java 对操作系统的各种 IO 模型进行了封装,形成了不同的API。
BIO (Blocking I/O) 是同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。
NIO (New I/O) 是一种同步非阻塞的I/O模型,在Java 1.4中引入,对应 java.nio 包,提供了 Channel , Selector,Buffer等抽象。
AIO (Asynchronous I/O) 在 Java 7 中引入,是NIO的改进版,是异步非阻塞的IO模型,基于事件和回调机制实现。
Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能被称为语言的反射机制。
类名 | 用途 |
---|---|
Class | 类的实体 |
Field | 类的成员变量 |
Method | 类的方法 |
Constructor | 类的构造方法 |
asSubclass(Class<U> clazz)
Cast
getClassLoader()
getClasses()
getDeclaredClasses()
forName(String className)
getName()
newInstance()
getPackage()
getSimpleName()
getSuperclass()
getInterfaces()
getField(String name)
getFields()
getDeclaredField(String name)
getDeclaredFields()
getAnnotation(Class<A> annotationClass)
getAnnotations()
getDeclaredAnnotation(Class<A> annotationClass)
getDeclaredAnnotations()
getConstructor(Class...<?> parameterTypes)
getConstructors()
getDeclaredConstructor(Class...<?> parameterTypes)
getDeclaredConstructors()
getMethod(String name, Class...<?> parameterTypes)
getMethods()
getDeclaredMethod(String name, Class...<?> parameterTypes)
getDeclaredMethods()
isAnnotation()
isAnnotationPresent(Class<? extends Annotation> annotationClass)
isAnonymousClass()
isArray()
isEnum()
isInstance(Object obj)
isInterface()
isLocalClass()
isMemberClass()
equals(Object obj)
get(Object obj)
set(Object obj, Object value)
invoke(Object obj, Object... args)
newInstance(Object... initargs)
以上是脚本宝典为你收集整理的【基础概念大总结】— 网络安全 Java 基础知识大汇总全部内容,希望文章能够帮你解决【基础概念大总结】— 网络安全 Java 基础知识大汇总所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。