- 博客(63)
- 收藏
- 关注
原创 Java反序列化
Java反序列化什么是序列化和反序列化如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。序列化:将数据结构或对象转换成二进制字节流的过程反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程下面是序列化和反序列化常见应用场景:对象在进行网络传输(比如远程方法调用 RPC 的时候)之前需要先被序列化,接收到序列化的对象之后需要再进行反序列化;将对象存储到文件之前需要进行序列化,将对象从文件中读
2024-10-09 18:20:11 417
原创 Java反射
也就是Object数组,它会给String[][]去掉一层。剩下的String[]匹配ProcessBuilder变量格式。通常是先获取Class类,再通过Class类的方法获取Method类、Constructor类或Field类。获取到Class类后,可以通过如下方法获取对应的构造函数、成员方法或者成员变量才进行其它操作。ProcessBuilder有两个构造函数。根据这两个构造函数,有两个反序列化的构造。newInstance函数接受参数是一个。
2024-07-26 11:25:23 383
原创 shiro漏洞利用记录
nginx waf可能限制下载heapdump,但里面的配置可能是精确匹配,因此可以使用。经过调试发现可以把请求方式改成OPTIONS或者HEAD绕过。在burpsuit里设置把GET方法改成OPTIONS方法。设置burpsuit代理,在burpsuit里观察一下。点击检测当前密钥,发现提示未发现shiro框架。下载heapdump。
2024-06-29 10:46:21 383
原创 神界原罪2武器伤害期望参考
不讨论命中率(一般不缺命中率)默认吃到高地伤害加成某些天赋的增伤(如元素游侠)由于比较特殊且不影响点数分配,故伤害公式中没有体现计算结果只为理论数值,具体伤害还要受怪物抗性、地形、buff等多种因素影响。
2024-02-04 17:29:42 1329
原创 python使用Tesseract
Tesseract是一个开源的ocr工具,它是由C++编写的,可以直接在Windows上运行,也可以用各种编程语言调用。
2023-12-21 15:01:07 714
原创 解决Java错误Error: A JNI error has occurred, please check your installation and try again
解决Java错误Error: A JNI error has occurred, please check your installation and try again
2022-06-07 16:59:47 1038
原创 文件包含漏洞攻击(DVWA)
文件包含漏洞攻击DVWA一、文件包含漏洞二、Low难度1. 源码分析2. 本地文件包含LFI1)相对路径2)绝对路径3. 远程文件包含RFI三、Medium难度1. 源码分析2. 本地文件包含LFI1)相对路径2)绝对路径3. 远程文件包含RFI四、High难度1. 源码分析2. 本地文件包含五、Impossible难度1. 源码分析一、文件包含漏洞PHP文件包含漏洞是一种注入型漏洞注入型漏洞还有XSS漏洞和SQL注入漏洞PHP的文件包含可以直接执行包含文件的代码包含的文件格式 是不受限制的,只要
2022-05-11 15:50:41 3151
原创 利用metasploit framework对tomcat进行弱密码攻击并获得shell
一、实验环境1. 攻击机操作系统:Kali(Debian)网络配置:桥接攻击工具:metaploit framework 62. 靶机操作系统:metasploitable 2(Ubuntu 8.04)tomcat版本:tomcat 5.5二、扫描靶机扫描知tomcat在8180端口三、暴力破解# 启动msfconsole# 搜索tomcat相关漏洞msf6 > search tomcat# 使⽤暴力破解模块msf6 > use auxiliary/scanne
2022-05-07 14:52:39 700
原创 recon-ng模块安装与基本使用(国内环境)
模块安装recon-ng初始是没安装模块的,而安装模块一般需要科学上网。但不用科学上网其实也是可以让recon-ng工作的。github上有现成的模块可以下载下载链接下载后解压,把文件放在这里/root/.recon-ng,注意这个文件夹默认是隐藏的,需要勾选显示隐藏文件夹,并以root用户登录才行。基本使用help显示提示按下空格和两下Tab键显示提示...
2022-04-22 11:19:26 3835
原创 Java collect()方法
这个方法在Stream类里定义需要结合动态规约理解三个参数解析<R> R collect(Supplier<R> supplier, BiConsumer<R,? super T> accumulator, BiConsumer<R,R> combiner)supplier:生成用来保存结果的容器accumulator:处理输入数据,数据会经过它的处理后保存到容器中combiner:把产生的结果拼接到另一
2022-04-21 17:09:44 8359
原创 Java Mutable reduction(动态规约)
官方文档解释简介动态规约操作会把Stream(流)中元素添加到动态容器中,例如Collectin或StringBuilder。如果我们想把Stream中的一堆字符串拼接成一个长字符串的话,一个用以下操作: String concatenated = strings.reduce("", String::concat)这种方式虽然管用,但是性能不够优秀,时间复杂度是O(N2)。为了更高效得完成这类任务,Java提出了动态规约。实现方式collect()函数collect()函数会以动
2022-04-21 16:56:38 732
原创 Java LinkedList 踩坑
与ArrayList的区别LinkedList的底层是用链表实现的,方便增删。push()与add()push是LinkedList独有的方法,与poll()、peek()对应。这个有点坑啊,直接上代码吧。public static void main(String[] args) { // TODO Auto-generated method stub LinkedList<Integer> list1 = new LinkedList<>(); Linked
2022-04-21 13:21:59 715
原创 Java递归中变量传递方式
用一个例子说明给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。示例 1:输入:candidates = [2,3,6,7], tar
2022-04-20 15:08:59 978
原创 TCPDUMP使用
使用手册抓取报文抓取经过eth0的报文。 -s 0报文有多大抓多大。-w保存。 抓取特定协议,特定端口查看抓取结果-A 更详细,-X十六进制显示,-n域名解析为ip地址
2022-04-19 15:39:07 91
原创 Wireshark的使用
混杂模式只要流经该机器的报文都会被抓取抓包过滤器简单使用保存停止抓包后保存。file->save 最好保存为pcap格式
2022-04-19 14:55:42 953
原创 netcat(nc)的使用
nc传输文本信息• A:nc -l -p 4444• B:nc –nv 1.1.1.1 4444A先侦听,B发送文件传输文件• A:nc -lp 333 > 1.mp4• B:nc -nv 1.1.1.1 333 < 1.mp4 –q 1A打开端口,等待B发送文件• 或• A:nc -q 1 -lp 333 < a.mp4• B: nc -nv 1.1.1.1 333 > 2.mp4B上传文件,打开端口,等待A接收加密传文件• A:nc -lp 333 |
2022-04-19 09:17:26 176
原创 UFUNCTION宏的关键字
namespace UF{ // valid keywords for the UFUNCTION and UDELEGATE macros enum { /// This function is designed to be overridden by a blueprint. Do not provide a body for this function; /// the autogenerated code will include a thunk that calls Proce
2022-02-23 19:06:14 211
原创 UCLASS宏的关键字
namespace UC{ // valid keywords for the UCLASS macro enum { /// This keyword is used to set the actor group that the class is show in, in the editor. classGroup, /// Declares that instances of this class should always have an outer of the speci
2022-02-23 19:04:58 308
原创 UPROPERTY宏的关键字
namespace UP{ // valid keywords for the UPROPERTY macro enum { /// This property is const and should be exported as const. Const, /// Property should be loaded/saved to ini file as permanent profile. Config, /// Same as above but load conf
2022-02-23 19:03:41 665
原创 Java多线程
Java多线程一、多线程的实现方式1. 继承Thread类2. 实现Rannable接口3. 实现Callable接口二、线程同步1. 同步代码块2. 同步方法3. Lock锁一、多线程的实现方式1. 继承Thread类优点:编程比较简单,可以直接使用Thread类中的方法缺点:扩展性较差,不能再继承其他类,不能返回线程执行结果/** 目标:多线程的创建方式一:继承Thread类实现。 */public class ThreadDemo1 { public static void
2022-02-08 22:53:38 495
原创 动态规划解题流程
动态规划解题流程一、认识动态规划二、动态规划的题目类型1. 求最大最小值2. 计数3. 求存在性三、求最大最小值(Coin Change)1. 确定状态1)最后一步2)子问题2. 状态转移方程3. 初始条件和边界情况4. 计算顺序四、计数(Unique Paths)1. 确定状态1)最后一步2)子问题2. 状态转移方程3. 初始条件和边界状态4. 计算顺序五、求存在性(Jump Game)1. 确定状态1)最后一步2)子问题2.状态转移方程3. 初始条件和边界情况4. 计算顺序六、总结动态规划适用情况一、
2022-01-29 16:44:22 1405
原创 数据库连接错误create connection SQLException, url: jdbc:mysql:///javaweb, errorCode 1045, state 28000
jdbc配置文件中的username与mysql关键字冲突前面加个jdbc避免冲突
2022-01-24 19:23:18 4335
原创 Java sort()与稳定排序
Java sort()与稳定排序首先由博文 JAVA里sort()方法的使用与原理解析的结论如下:sort()是根据需要排序的数组的长度进行区分的:首先先判断需要排序的数据量是否大于60。小于60:使用插入排序,插入排序是稳定的大于60的数据量会根据数据类型选择排序方式:基本类型:使用快速排序。「因为基本类型不需要考虑稳定性」Object类型:使用归并排序「因为归并排序具有稳定性」注意:不管是快速排序还是归并排序。在二分的时候小于60的数据量依旧会使用插入排序sort()对Obejct类型
2022-01-22 17:50:17 2026 1
原创 Java Stream流
Java Stream流一、获取Stream流二、Stream流常用API一、获取Stream流import java.util.*;/** 目标:Stream流的获取 Stream流式思想的核心: 是先得到集合或者数组的Stream流(就是一根传送带) 然后就用这个Stream流操作集合或者数组的元素。 然后用Stream流简化替代集合操作的API. 集合获取流的A
2022-01-22 15:17:15 315
原创 SpringMVC笔记
SpringMVC笔记一、开发步骤一、开发步骤①导入SpringMVC相关坐标②配置SpringMVC核心控制器DispathcerServlet③创建Controller类和视图页面④使用注解配置Controller类中业务方法的映射地址⑤配置SpringMVC核心文件spring-mvc.xml⑥客户端发起请求测试...
2022-01-21 15:17:33 185
原创 Spring学习笔记
Spring学习笔记一、Bean标签范围配置二、注入引用类型set方法注入构造方法注入三、注入普通类型四、注入集合类型五、三种注入方法综合使用案例一、Bean标签范围配置singleton:只能创建一个对象,加载配置文件时创建一个bean对象,之后不再创建。prototype:可以创建多个对象,每使用getBean方法时,创建一个对象。二、注入引用类型UserService会new一个引用对象UserDao,以此举例。set方法注入public class UserServiceImpl i
2022-01-20 14:33:16 212
原创 Maven的使用说明与注意事项
Maven的使用说明与注意事项)一、中央仓库与私服二、IDEA与Maven三、依赖传输冲突问题四、引用资源隐藏五、排除引用六、依赖范围七、依赖范围的传递性(了解)一、中央仓库与私服1.中央仓库的访问速度很慢,一般会配置私服或镜像仓库。2.中央仓库只能发开源的资源,不开源、有版权的资源在中央仓库找不到。二、IDEA与Maven1.IDEA与Maven分别所属两家公司,用IDEA集成最新版本的Maven可能会出错,不能用。没特殊需求,建议用IDEA自带的Maven。三、依赖传输冲突问题1.路径优先
2022-01-20 10:57:19 303
原创 fastjson的使用
maven依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency>// 将JSON字符串转为Java对象 String jsonString;
2022-01-18 15:14:50 269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人