记一次渗透测试CS架构产品客户端创建用户机制抓包,通过peach工具重放报文绕过客户端直接创建用户的问题定位。

1、背景 该产品基于CS架构设计,可以通过管理员账户客户端创建系统用户。首先通过wireshark抓取了登陆到创建用户的整个报文,并将报文解密,配置peach发包工具,模拟管理员登陆客户端并创建其他用户的功能。 2、现象 当管理员用户在线的时候,peach工具能够成功发包创建用户。而管理员用...

2019-03-16 21:45:36

阅读数 246

评论数 0

Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)

一、重量级锁   上篇文章中向大家介绍了Synchronized的用法及其实现的原理。现在我们应该知道,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要...

2019-03-10 20:10:26

阅读数 13

评论数 0

Java并发编程:synchronized及其实现原理

一、synchronized的基本使用   synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,synchro...

2019-03-10 20:04:30

阅读数 18

评论数 0

Java对象头

一、Java对象头介绍 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 HotSpot虚拟机的对象头(Object Header)包括两部分信息,第一部分用于存储对象自身的运行时数据,...

2019-03-10 19:53:44

阅读数 9

评论数 0

JDK1.8 ConcurrentHashMap扩容实现原理

1.8中的concurrentHashMap扩容机制是无锁并发的,即支持多线程同时来对旧哈希数组扩容。那么它怎么保证在多线程场景下的线程安全呢?具体分析: private final void transfer(Node<K,V>[] tab, N...

2019-02-20 22:12:12

阅读数 42

评论数 0

工厂模式

工厂模式由三组对象构成:抽象产品,具体产品,实现具体产品的工厂。三者的关系是 1、抽象产品定义了接口 2、具体产品实现或者是继承抽象产品并实现了抽象产品定义的接口 3、工厂持有抽象产品引用,并且知道具体产品,并且定义了获取具体产品的接口 以一个生产手机的小demo来展示工厂模式,其UML类...

2019-02-18 22:39:46

阅读数 26

评论数 0

volatile

目录 一、volatile的特性 二、volatile的内存语义 三、volatile实现原理 Java并发有三大特性:1)可见性,即一个线程中对共享变量操作的结果对另一个线程看见;2)有序性,多线程环境下执行的结果与顺序执行的结果一致;3)原子性,即一组操作要么全部执行完毕,要么都不执行...

2019-01-30 22:26:36

阅读数 25

评论数 0

Java并发体系

并发是Java中最重要又比较有难度的内容,想要掌握这部分内容需要很大的功夫。Java并发体系主要包括7部分内容,如下图所示。后续将深入学习探讨这些内容。 Java并发体系...

2019-01-30 21:12:23

阅读数 55

评论数 0

如何在windows平台下使用hsdis与jitwatch查看JIT后的汇编码

本文转自:https://www.cnblogs.com/stevenczp/p/7975776.html   1. 安装hsids 这一步比较麻烦,需要提前安装cygwin,以及下载openjdk的源码 具体步骤请参考下面的两篇文章 How to build hsdis-amd64.d...

2019-01-28 21:15:45

阅读数 47

评论数 0

HashMap实现原理

目录 一、hash函数实现 二、HashMap内部哈希数组的长度为什么要取2的幂 三、哈希数组的扩容 1、什么时候触发扩容? 2、扩容做什么事情? 1)新hash数组初始化 2)已存储键值对重新散列 四、HashMap存储原理 1、put操作 1)hash数组索引位置为null...

2019-01-27 22:10:04

阅读数 45

评论数 0

List和Set

目录 一、List和Set比较 二、List  1、ArrayList 2、LinkedList  三、Set 一、List和Set比较 List和Set对比 List Set 基于数组或者双链表实现 基于map实现 允许重复元素 不允许重复元素 支持...

2019-01-23 20:54:42

阅读数 24

评论数 0

Java中三大常用容器体系

目录 一、Java中三种容器区别 二、容器体系 一、Java中三种容器区别 Java中的容器类型包括:List、Set和Map。三种容器的区别: Java中三大容器区别 List Set Map 可以存储重复元素 不可以存储重复元素 键值对方式存储,存储的键...

2019-01-19 17:12:07

阅读数 188

评论数 0

Comparable和Comparator

目录 一、Comparable 二、Comparator  Comparable和Comparator都表示对类型进行比较。但是Comparable表示的是某个类型本身具有比较的能力,而Comparator侧重于类型本身无比较能力,但是我们可以通过外部定义其可以通过某种规则进行比较。 一、...

2019-01-19 16:11:48

阅读数 22

评论数 0

FailFast机制

目录 FailFast机制的定义 FailFast机制的定义 Java中对非线程安全的容器的迭代器进行了限制。JDK中具体描述如下: structurally modified at any time after the iterator is  * created, in any wa...

2019-01-16 21:20:37

阅读数 41

评论数 0

深拷贝与浅拷贝

目录 一、clone的条件 二、浅拷贝和深拷贝  三、如何实现浅拷贝和深拷贝 Object基类中声明了一个clone()方法,用于实现对象的拷贝。在Java中,所有对象都是Object的子类,因此,都可以通过clone()方法创建新的类型实例。但是Object类中的clone()方法声明为...

2019-01-16 21:04:09

阅读数 23

评论数 0

包装类型

目录 一、体系 二、内部实现原理 一、体系 包装类型对应8种基本数据类型:byte、short、int、long、float、double、char、boolean。 其中,除了Boolean与Character类型之外,其余6种类型都继承了Number。    二、内部实现原理...

2019-01-14 22:52:36

阅读数 24

评论数 0

foreach原理

目录 一、foreach的作用 二、foreach实现原理 一、foreach的作用 遍历容器或者数组中的元素。从学C语言开始,我们知道可以用循环获取容器中的所有元素,后来接触Java,知道还可以用迭代器获取容器中的所有元素,foreach也是一种遍历容器所有元素的方法。 那么forea...

2019-01-14 22:26:21

阅读数 25

评论数 0

异常

目录 一、异常体系 二、Throwable 三、Error 四、Exception Java中,异常表示程序运行过程中发生的某种已知或者未知的不正确的行为。这种行为,会影响甚至终止程序的正确运行。在实际编程中,我们会遇到各种类型的异常,接下来由分四部分对异常进行简要的介绍。 一、异常体...

2019-01-13 22:33:59

阅读数 21

评论数 0

String、StringBuffer、StringBuilder

目录 一、String 二、StringBuffer与StringBuilder 一、String 1、特点:不可变 2、内部实现原理:内部声明了一个char类型的数组,存储字符串内容。 3、重要方法 1)hashCode()  public int hashCode() {  ...

2019-01-13 21:24:50

阅读数 22

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭