自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

士心的博客

度小满src2021年度top8

  • 博客(28)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 计算机网络的MTU

1.MTU的定义最大传送单元(Maximum Transfer Unit,MTU)。意思是IP数据报的最大长度(不包括帧头帧尾)。MTU的单位是字节。2.MTU设置不当可能引发的问题大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。想起初中玩DNF的时候,从频道进入选择人物的界面会经常卡死。当时第一次知道了MTU的概念。若MTU设置不当本机的M

2020-06-29 22:11:45 12514 4

原创 在Maven中发布项目到Nexus私有服务器

运行完成后可以在nexus看到已经上传上来了。

2023-10-31 18:02:44 827

原创 Apache ActiveMQ (版本 < 5.18.3) (CVE-2023-46604)RCE修复方案/缓解方案

CVE-2023-46604

2023-10-31 11:24:26 3259 2

原创 记一次kali linux虚拟机VMware磁盘不足的扩容

随着kali的使用,虚拟机默认的80G内存根本不够用,只好扩容。然后搜索到的办法各种各样,参差不齐。于是记录一下自己完整的扩容步骤。首先打开虚拟机,执行命令gparted然后将中间的分区都删除 /dev/sda2和/dev/sda5先swapoff再delete然后就可以resize主分区了留出一些空间作为linux-swap,点击确认应用若不做以下步骤每次开机会卡住90s,不在意的可以忽略输入sudo blkid查看真实UUIDsudo vim /etc/fstab 将真实U

2021-08-18 14:00:39 3026

原创 记某次挖补天专属src的XSS一波三折绕过语义分析waf的过程总结

0x01背景某次挖src的时候

2021-08-02 15:52:34 1293

原创 InnerHTML属性的XSS利用

0x0前言之前一直对于反射型和DOM型XSS的区别分不清楚,没有好好深入理解,短浅的将DOM型XSS归为反射型的一种。最近因为要写一下靶场,所以特别深入了一下,发现他们最大的区别就是反射型是经过后端的,它经过后端处理后返回至前端,而DOM型则是通过JS直接操作DOM树来完成的,它不经过后端。正是因为不经过后端,而大部分的过滤操作都是在后端进行,前端往往被忽略,所以在大型厂商它存在的概率甚至比反射型还大。例如某知名安全平台就出现过一个DOM型xss漏洞:“灯下黑”挖出国内知名安全平台某BUF的xss漏洞

2021-07-26 17:10:30 1772 2

原创 深入理解Javascript劫持(JavaScript Hijacking)原理

0x0前言首先说明此类攻击在主流浏览器已近乎失效,此篇文章作为感想记录。与JSONP不同,此类攻击通过<script>标签绕过同源策略,并利用hook获取返回的数据。0x1背景最近在看我司白盒扫描工具的知识库时,发现一个之前没见过的缺陷(Javascript劫持),出于好奇心想深入了解一下这个缺陷,但写此缺陷的资料比较少,特此写下此篇文章。0x2原理Javascript劫持与CSRF攻击原理非常相似,唯一不同的是,CSRF是模拟你的身份去发送请求,JavaScript Hijac

2021-07-23 12:15:56 3509 2

原创 [web安全]常见加密相关算法简介

信息摘要算法数据摘要算法也被称为哈希(Hash)算法或散列算法。通过相同的摘要算法处理,得到的结果值。结果不可逆,无法通过结果值推算出算法处理前的数据。一般用于签名验签。信息摘要算法严格来说不能说是一种加密算法,因为它是无法通过结果值推算出算法处理前的数据。所以我们都称其为哈希算法或散列算法。把信息摘要算法理解成提取特征值,其实就能很好理解。原始数据只要有一个字节改变,计算出的MD5值都会大相径庭。例如我们下载安装包时通常都会给出MD5值,只要我们计算下载后的安装包的MD5与官网提供的MD5

2020-07-21 21:35:02 489 1

原创 操作系统中的内存管理

1.虚拟内存在操作系统中,虚拟地址空间的分布被分为内核空间和用户空间两部分Linux:32 位进程,虚拟地址空间为 3 GB,范围从 0x00000000 至 0xBFFFFFFF。Windows中:32 位进程,虚拟地址空间为 2 GB,范围从 0x00000000 至 0x7FFFFFFF。对于 64 位 Windows 上的 64 位进程,虚拟地址空间为 128 TB,范围从 0x000’00000000 至 0x7FFF’FFFFFFFF参考:Windows虚拟地址空间...

2020-07-08 22:41:54 160

原创 Windos安装MySQL 8.0.20教程

1.先在官网下载压缩包2.下载完成后随便解压到一个地方 比如E盘3.初始化MySQL3.1进入bin目录,按住shift键点击鼠标右键,点击在此处打开命令窗口3.2使用命令:mysqld --initialize --console如果出现错误,没有请略过1、下载文件链接,并解压下载的文件。2、复制文件“vcruntime140_1.dll”到系统目录下。3、系统目录一般为:C:\WINNT\System32 和C:\Windows\SysWOW644、最后点击开始菜单–>

2020-07-03 19:16:29 222

原创 [Linux]Linux命令行下 一条命令杀死一个进程

1.答案ps -ef | grep java | grep -v grep |awk '{print $2}'| xags kill -9指令意义ps -ef指令用来查询所有进程grep java通过管道来过滤指定名字中含有 java 进程grep -v反向查询,即过滤出不包含 -v 参数后指定字符的信息awk在这里的作用是取出进程idxargs接收awk分割后的输出作为kill -9 的参数2.分析有很多人同学可能不理解为什么需要grep

2020-07-01 19:53:19 752

原创 [Leecode]215. 数组中的第K个最大元素 JAVA解法三种方法

1.题目在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。...

2020-06-30 22:59:27 4709

原创 双系统Ubuntu20.04与Windows时间不对

一. 原因最根本的原因是两个系统的时间管理差异造成的。Ubuntu 默认把 BIOS 时间当做 GMT+0,也就是协调世界时;而 Windows 则是看做UTC即(当前时区 GMT+8)。所以你会发现它们之间相差8小时,于是就出现时间被两个系统改来改去,切换系统时发生时间错乱。UTC即Universal Time Coordinated,协调世界时(世界统一时间)GMT 即Greenwich Mean Time,格林尼治平时解决办法:禁用Ubuntu的UTC打开终端输入以下命令timeda

2020-06-16 16:30:02 3675

原创 [Leecode]990. 等式方程的可满足性

1.题目可以先看示例帮助理解题意给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。示例 1:输入:["a==b","b!=a"] 输出:false 解释:如果我们指定,a = 1 且 b =1,那么可以满足第一个方程,但无法

2020-06-15 00:09:17 148

原创 [Leecode]三数之和15. 3Sum Given an array nums of n integers, are there elements a, b, c in nums

原题链接:三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]题目大意给定一个整数型数组,找出符合a + b + c = 0的情况。思路1:我首先想到的是深度搜索DFS给定数

2020-06-13 22:58:24 273

原创 深入理解JVM-垃圾收集器的选择

1.概述JAVA中不同于C++的地方在于,JAVA程序员只需关心创建对象,回收对象由垃圾回收器负责。而C/C++程序员既需要负责创建也要负责回收。之前的文章我们了解了JVM的内存区域,知道了我们创建的对象几乎都在堆中。所以垃圾收集器主要是作用在堆的。我们知道堆可以细分为新生代和老年代。有些垃圾收集器(Sirial,ParNew,Parallel Scavenge)作用在新生代,有些垃圾收集器(CMS,Serial,Paraller Old)作用在老年代,还有一种特殊的、同时作用在新生代和老年代的垃圾收集

2020-06-13 00:35:06 194

原创 HashMap负载因子为什么是0.75,链表转红黑树阈值为什么是8

1.HashMap负载因子为什么是0.75这是时间与空间成本上的折中。1.1时间成本假设负载因子是1时,虽然空间利用率高了,但是随之提高的是哈希碰撞的概率。而Hashmap中哈希碰撞的解决方法采用的拉链法,哈希冲突高了会导致链表越来越长(虽然后面会转换成红黑树),我们知道链表的查询效率是比较低的,所以负载因子太高会导致时间成本上升。1.2空间成本那么为了减少哈希冲突,提高查询效率,负载因子是不是越低越好呢?答案显然是否定的。...

2020-06-11 23:54:06 2055 1

原创 Ubuntu 20.04没有声音播放时出现哒哒的噪音

当打开声音设置或者播放音频/视频时,声音会停止当停止播放音频/视频和关闭声音设置时,声音再次开始原因可能是音频接口进入节能状态使用以下命令sudo vim /sys/module/snd_hda_intel/parameters/power_save修改文件 然后将文件中的1改为0保存后声音立马消失了...

2020-06-08 21:01:12 2037 4

原创 《深入理解Java虚拟机》学习笔记-对象内存布局

1.概述前面我们了解到Java中几乎所有的对象都存放在堆中,但我们并不知道对象是如何具体储存在堆中,接下来我们开始分析对象在堆内存中的储存布局是怎样的。2.内存布局对象在堆内存中的储存布局可以划分为三个部分对象头(Header)实例数据(Instance Data)对齐填充(Padding)2.1对象头对象头部分包括两类信息。第一类是用于储存对象自身的运行时数据,例如HashCode、GC分带年龄、所状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。这部分官方称它为"Mark Wor

2020-06-04 17:44:25 176 1

原创 图文介绍IDEA上集成配置GitHub进行开发

1.概述之前有许多项目都没有好好保存,由于电脑坏了,或者误操作导致丢失都是令人非常惋惜的。所以我写的代码都会使用GitHub进行保存。GitHub有许多优点,版本控制和多人协作,对于一个程序员都是非常有意义的。2.安装Git可以从Git官网直接下载,然后按默认选项安装即可。安装完成后再开始菜单找到“Git”->“Git Bash”在命令行里输入$ git config --global user.name "Your Name"$ git config --global user.ema

2020-06-02 22:16:32 167

原创 《深入理解Java虚拟机》学习笔记-Java内存区域

首先讲个笑话:饭堂里吃完饭把餐桌收拾好的是C++程序员,吃饭完拍拍屁股走人的是JAVA程序员。1.概述在内存管理区域,C++程序员必须对每一个对象生命从开始到终结的维护负责。而JAVA程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要对每一个new操作去写配对的delete/free代码,不容易(不代表不会)出现内存泄漏和内存溢出问题。一旦出现内存泄漏和内存溢出的问题,如果不了解虚拟机是怎么样使用内存的,那排查错误将会异常艰难。2.运行时数据区域分为五个区域,它们又分为线程共享和线程私有线程共

2020-06-01 15:54:12 171

原创 Git学习笔记2-版本控制

参考链接:廖雪峰的Git教程https://www.liaoxuefeng.com/wiki/896043488029600/8970135735121921.版本回退#HEAD 当前指针#HEAD^ 表示向上一层#HEAD~n 表示向上n层$ git reset --hard HEAD^ #返回到上一个版本$ git reset --hard 94bf #返回到指定版本,94bf是指定版本的id穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。要重返未

2020-05-31 10:08:27 123

原创 Git学习笔记1-Git基础

参考链接廖雪峰git教程:https://www.liaoxuefeng.com/wiki/896043488029600/9003887045351361.创建版本库$ mkdir learnGit #创建空目录$ cd learnGit #进入目录$ git init #将该目录初始化成Git仓库2.配置信息1)配置用户信息:$ git config --global user.name “Zack996”           #配置

2020-05-30 10:10:49 161

原创 ThreadLocal中使用弱引用的原因解析

当我们创建一个threadlocal时//此时local对创建的对象是强引用ThreadLocal<String> local=new ThreadLocal<>();//以一个键值对的形式<local,"123">//线程的成员属性存入maplocal.set("123");此时创建的对象ThreadLocal被两个地方引用1.local的引用2.键值对的引用此时我们需要明确知道threadlocalMap是线程的成员属性(以下简称为Map)Map

2020-05-29 15:35:32 2964 2

原创 简单实现LRU算法(Least Recently Used最近最少使用)

LRU即Least Recently Used的缩写,即最近最少使用,可以用来作为路由或者淘汰算法。算法的思想是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。正是由于这个特性,所以我们可以将使用不到的数据淘汰。基于链表的 LRU 实现 [头部是最新的数据(访问或者插入)]思路:每次新插入数据的时候将新数据插到链表的头部;每次缓存命中(即数据被访问),则将数据移到链表头部;那么当链表满的时候,就将链表尾部的数据淘汰。主要构成有get和put两个方法get时将访问的数据放

2020-05-29 13:55:21 524

原创 最大堆排序java代码注释解析

由于堆具有 完全二叉树 的特性,所以可以使用数组来进行储存。完全二叉树:指的是除了最后一层外的其他每一层被完全填充,并且所有结点都保持向左对齐。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。假设此时堆数组定义为nums[]当前节点为nodepublic class Main { public static void main(String[] args) { int[] nums = {1,6,2,5,8,4,3}; for(int i=nums.lengt

2020-05-28 20:48:15 154

原创 数据库的隔离级别

标题SQL标准中定义了四种隔离级别1.未提交读(READ UNCOMMITTED)在未提交读级别,事务中的修改,即使没有提交,对其他事务也都是可见的。事务可以读取未提交的数据,这也被称为脏读(Dirty Read)。性能来说未提交读不会比其他的级别好太多,所以除非真的非常必要的理由,在实际应用中不推荐使用。2.提交读(READ COMMITTED)(也叫不可重复读nonrepeatable)...

2019-12-24 14:02:57 73

原创 Jackson反序列化报错:UnrecognizedPropertyException

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片报错场景生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑...

2019-09-05 14:18:27 1945

ysoserial-0.0.6-SNAPSHOT-all.jar

ysoserial-0.0.6-SNAPSHOT-all.jar

2021-10-20

vcruntime140_1.zip

解决由于找不到vcruntime140_1.dll,无法继续执行代码的错误所需要的资源。例如安装mysql时可能会产生次错误。

2020-06-03

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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