Java
Quarrie
这个作者很懒,什么都没留下…
展开
-
Java探针-基于javaagent的http请求记录
在了解javaagent的创建后,今天将尝试一种更高级的用法——类替换,并用其实现Http请求地址的记录功能。javaagent允许我们在项目启动时的类加载阶段或者项目运行后进行类的替换,两者的替换方式相同,都是借助入口函数Instrumentation对象进行操作,回顾下两种方式的入口函数:1.perman入口函数,由JVM参数配置在程序启动时的类加载阶段引入详见《Java探针-javaagent由浅入深(一)》 import java.lang.instrument.Instrume原创 2020-06-29 23:44:07 · 2462 阅读 · 0 评论 -
jackson-databind远程代码执行漏洞(CVE-2020-8840)修复与测试
漏洞介绍攻击者可以利用此漏洞通过JNDI注入的方式执行本地Web容器下的任意代码,后文中将测试LDAP方式的远程代码调用,受影响版参见:NVD。修复建议网上能找到的大部分修复建议是将jackson-databind的版本升级到2.9.10.4或后续版本,此方法的确行之有效,但是对于使用JDK1.6的老项目就比较尴尬,因为至2.8版本后jackson-databind字节码不再兼容JDK1.6...原创 2020-05-03 13:54:06 · 4038 阅读 · 0 评论 -
「札记」Java中类的概念
很久以前,计算机科学家就认识到了数据和操作之间的这种紧密关系。这种关系催生了抽象数据类型(abstract data type,ADT)这一思想。抽象数据类型是由一个表示数据项的抽象对象集合和一些列对这些对象所做的操作构成的。(……)虽然抽象数据类型可以用Pascal这样传统的面向过程语言来实现,但用C++和Java这样的面向对象语言来实现要更为方便,这些语言用类(class)来支持抽象数据类型。...原创 2019-12-02 22:37:46 · 213 阅读 · 0 评论 -
Java探针-javaagent由浅入深(二)
这篇文章主要介绍如何通过maven工具构建javaagent,实质原理相同,只是借助maven工具更符合工作中的应用场景,所以简单介绍下,同时将着重介绍一种在运行时引入javaagent的方法。一、利用maven工具构建javaagent1、创建maven项目2、按照前文中的方法创建Agent类,并正确编写permain(String,Instrumentation)方法3、编写m...原创 2019-11-17 16:38:32 · 913 阅读 · 0 评论 -
Java语言Scoket编程及实现原理浅析
上一篇文章中介绍了C语言的Socket编程,其主要目的是说明Socket实现是基于网络层IP协议和传输层TCP协议或UDP协议的,网络层、传输层的协议又是操作系统来实现的,所以在C语言中不同操作系统对应着不同的函数库调用,而Java语言具有平台无关性,也就是说不会因操作系统不同而依赖不同的类库,这篇文章将介绍基本的Socket编程及Java层面的实现原理。一、Java语言Socket编程服...原创 2019-06-23 20:08:23 · 523 阅读 · 0 评论 -
Java语言Scoket编程进阶(一)(多线程、双向通信)
在《Java语言Scoket编程及实现原理浅析》一文中介绍了Java中Socket、ServerSocket的基本使用方法,本文将介绍一些Socket的进阶用法,实现一个多人的聊天室,技术要点主要包含以下两个方面:一、Socket结合线程使用,实现服务端对客户端的一对多链接(TCP协议)我们知道对于单个服务端的IP和端口是固定的,即我们在创建ServerSocket对象时传入的构造参数,那...原创 2019-10-07 18:59:59 · 385 阅读 · 0 评论 -
Java探针-javaagent由浅入深(一)
前言(可忽略):近来因为公司要对我所负责的系统进行安全性的检测,项目需要引入VulHunter这个工具,引入的方式正是在Web容器上添加javaagent作为JVM参数,如:-javaagent:/home/haye/vulhunter.jar。这种引入对我的项目代码本身可以说是零侵入,但却实实在在的扫描到了项目存在的漏洞,对此甚为好奇,遂决定研究下javaagent的用法。javaagent...原创 2019-10-09 22:33:36 · 2854 阅读 · 3 评论