自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 如何使用myabtis log plugin插件展示出数据库查询语句

直接插件市场搜该插件进行安装就行,安装完成后,会有如下图标。

2024-09-15 22:57:50 539

原创 springboot3.x版本集成log4j冲突,解决为啥log4j冲突不生效的问题

这可真是纳了闷了,我一度以为是我的maven没有生效,疯狂的进行maven更新以及clean和install,结果发现都不起作用,当时都崩溃了,不明白为啥已经去除了还存在,网上搜了一下,才知道有可能是其他的包也引入了logback,也就是需要找到哪里引入的,依旧查看maven的包,找到罪魁祸首了,因为我还引入了actuator包,这个包也引入了logback。由于springboot自带的日志logback会与log4j冲突,因此在网上搜了之后,进行了去除操作。更新maven之后,问题解决。

2024-09-15 22:47:07 684

原创 springboot3.x版本集成log4j遇到Logging system failed to initialize using configuration from ‘classpath:log4

如下图所示,使用最新版的springboot3.x版本,集成log4j的时候,会报如下的错误。可以看到log4j两个版本冲突了,那么只需要保持版本一致即可,修改版本为2.21.1解决问题。搜了半天,试了好多结果,最后发现可能是版本冲突了。那么如何看版本冲突呢,通过maven的这个图标。如下图所示,成功使用log4j进行日志打印。

2024-09-15 22:39:18 583

原创 springboot3.X版本集成mybatis遇到的问题

最根本的原因是搜出来的配置是参照springboot2.X版本,当我们使用springboot3.x版本之后,需要配置使用3.0.3及以上的mybatis才行,否则的话就会出现无法注入mapper的bean的问题。参照我如下的maven配置即可完美解决该问题,使用3.0.3版本的mybatis就可以完美适配springboot3.X版本。当我参照如下搜索的内容去集成mybatis的时候,会出现各种各样的报错。由于我本地springboot为3.x版本,如下图所示,最新版本。

2024-09-15 22:30:39 695

原创 springboot中interceptor拦截器匹配URL源码

看到在这里出现了拦截器,那么就在这个类里面往上找,打断点慢慢找,看看是在哪一步出现了拦截器。最后找到这里进行了拦截器的匹配模式。上一篇文章我们找到了filter过滤器的匹配源码,这次我们来找一下interceptor的匹配源码。直接源码里面备注里面就有写,那么两个都打上断点,调试一下即可。也可以用我之前写的文章,通过反编译jar包搜关键字的方式。接着翻调用链,看看从哪里开始出现拦截器的。同样先打断点看一下调用链。

2024-08-23 22:39:09 411

原创 springboot框架中filter过滤器的urlPatterns的匹配源码

然后跟着调用链慢慢点,看看哪里开始出现了过滤器,这条链路已经出现了,那么说明肯定是在这个之前进行过滤器注册的。然后我们就找到了filter匹配的具体位置,里面有match方法,判断url和urlpattern是否匹配。urlPatterns为/*,可能很多人都知道filter的/*代表所有URL都匹配,但是源码在哪里呢。如下图所示,我使用@WebFilter注解的方式定义了一个过滤器,同时定义了过滤器的过滤条件。核心匹配方法,直接断点打到这里进行调试就好。往上翻就能看到创建过滤器链条的。

2024-08-23 22:23:10 819

原创 springboot中后缀匹配模式useSuffixPatternMatch、useTrailingSlashMatch的源码匹配分析

上篇文章,已经说了,如果我们直接debug调试没法找到源码中具体的代码,那么就可以通过jd-gui反编译的方式通过搜关键词的方式来找到源码中具体的位置,这次简单说下spring中的两种后缀匹配模式useSuffixPatternMatch、useTrailingSlashMatch在源码中的具体校验位置。从这边可以看到,最新的6.1.1版本,这两个配置已经默认都是false了,是安全的配置了。找到关键位置之后就可以打断点进行调试分析了,这边就不一一赘述了。通过如下配置显示设置为true。

2024-08-22 22:34:53 700

原创 如何使用jd-gui对springboot源码进行分析

最近在学习springboot的过滤器和拦截器,想了解一下过滤器和拦截器是怎么匹配URL的,在网上搜了半天都搜不到针对源码的,网上大部分内容都是说怎么配置过滤器和拦截器,怎么使用,并没有对源码进行分析的。我也自己打断点进行调试,但是总是调不到想要的地方,后来我就想到了一个方法,用jd-gui直接对源码进行反编译,然后搜关键词,这样不就能快速的找到具体的位置了。那么我们就直接去源码里面搜这个方法,我在办公室都是能够搜到方法的,这边咋搜不到了。再试一下,这样就会出来类的方法,直接搜的话就可以搜到。

2024-08-22 22:19:12 392

原创 解决springboot中Aspect注解不生效问题

当时也在网上搜了半天,包括在启动类增加配置,接口都要加上注解等等都研究了一遍,发现还是不行,最后发现是我注解的切点没有生效,因为我当时把类放到其他包下面了,如果直接写类名的话,加载不到,这真是离了大谱,果然不能随便修改东西,后来我修改成对应的完整路径就可以了。运行结果可以看到,其他非注解类型的Aspect都顺利执行了,但是这个注解的切面就是没有执行。如下图所示,配置了一个注解类型的Aspect,结果一直不生效。修改之后的结果,这下注解就生效了,真是修改一点点,都有问题。

2024-08-19 22:06:27 1185

原创 练习:合并数组

【代码】练习:合并数组。

2024-08-19 21:56:24 149

原创 练习:搜索插入位置

思路:由于是有序数组,并且要使用O(log n)的算法,那么就只能使用二分法了,for循环的话是O(n);如果刚好是数组中存在的,那么二分法直接返回即可,但是如果二分法没有找到的话,可能就需要返回low值。给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。输入: nums = [1,3,5,6], target = 7。

2024-08-04 22:41:40 232

原创 练习:寻找数组的中心索引

然后看了一下题解,数组的总和是确定,那么只需要判断左边的两倍是不是等于总和就好了,果然算法题目考的还是思路,思路不对,代码难写不说,用例还不能百分百通过,现在修改一下代码重新跑一下看看,这下就是百分百通过了,数组我感觉主要还是要考虑到边界值的条件,要不然很难百分百通过。左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,右侧数之和 sum = nums[1] + nums[2] = 1 + -1 = 0。数组中不存在满足此条件的中心下标。

2024-08-04 21:56:43 347

原创 java算法递归算法练习-数组之和

简单找个题目练习一下递归算法,输入一组数组,使用递归的方法计算数组之和。其实这个题目,用循环的方式也很简单就能解决,直接循环遍历一下相加就行了,但是我们用来练习一下递归。基线条件:当数组下标为0的时候,说明只剩一个值了,直接返回值就行。递归条件:长度大于0的话,就需要相加并递归调用,直到满足基线条件。先来找基线条件和递归条件。

2024-07-31 22:27:43 464 1

原创 java算法递归算法之选择排序

这边我们选择最左边的数组作为基准值,然后但是单指针的方式来标识基准值所在的位置,然后分别于基准值进行比较,小于基准值的,mark+1,然后参数交换,最后将基准值与mark位置的值进行交换即可。因此我们需要重复以上的步骤,分别对1和3也选择基准值进行分区,直到数组中最后只剩0个或者1个,那么就达到目标了,重复进行操作即可。那们我们需要写的代码,首先需要先确定一个基准值,然后把大于基准值和小于基准值的给找出来,进行递归调用。这边盗用一下别人的图,看图会更加的清清晰明了。

2024-07-31 22:07:47 342

原创 java算法之分而治之(D&C)-分土地

2、不断的将问题分解或者是缩小规模,直到符合基线的条件。比如题目的内容,进行分解, 可以分成两个64m的正方形以及一个64*40的长方形,然后接着对这个长方形缩小规模,剩一个40*24的长方形,接着缩小规模,剩一个24*16的长方形,再缩小规模,剩下一个16*8的长方形,这个长方形正好符合上面的基线条件,那么就可以知道题目最终能分成的最大的正方形的长度就是8。1、找出基线条件,最简单的就是,一条边的长度时另一条边的整数倍,这样的话,就可以直接得出最大的方块就是短边的长度。

2024-07-28 09:35:22 233

原创 Java算法之递归算法-如何计算阶乘的值

题目:使用递归算法计算阶乘的值,也就是5!=5*4*3*2*1,直接使用循环是非常简单的,这边练习一下递归算法。上一篇学了递归之后,练习一下递归算法。递归条件:x * f(x-1)基线条件:等于1的时候返回1。

2024-07-26 22:16:03 410

原创 算法之递归算法

递归是非常常见的一种算法, 也比较难以理解,简而言之,递归就是写了一个方法,方法中还调用了该方法,相当于自己调用自己,如果书写不当,就会有堆栈溢出的风险,无法跳出。所以我们编写递归函数时,必须要告诉他何时停止递归,这就是基线条件,而递归条件就是指函数调用自己。,也就是给一个输入,然后依次输出值并减一,直到为1的时候。这个时候我们可以用递归的方式来写,先理出递归的两个条件。递归条件:入参不小于0的话,则自己调用自己,入参减一。当输入为5的时候,可以看到,总共递归了五次。举个例子,如果要编写一个倒计时的函数。

2024-07-26 22:00:12 168

原创 算法之选择排序

什么是选择排序呢,就是给你一组无序数组,进行排序,那么从第一个数开始,依次与后面的数进行比较,如果找到最小的,就放在第一位,然后从第二个再进行比较,放在第二个,重复以上操作,直到找到最后一个数,这样就完成了由小到大的一个排序,由大到小也是一样的。本来的想法是找到一个最小的,直接从原来的数组中删除,然后放到新的数组中就好了,但是由于java中的数组删除一个数很麻烦,因此这边直接需要新建个swap方法,专门用来进行数组中的数进行交换使用。输入一组无序数组,然后进行从小到大的排序,并输出最后的结果。

2024-07-20 21:54:28 487 1

原创 算法学习之二分法

而是核心算法就是从数组的中间开始查找,定义数组的low和high,分别是0和数组的长度减一,然后从中间开始比较,如果大了,则更新high,小了话则更新low,这样的话每次都能去除掉一半的数。二分查找的运行时间为。输入一行有序数组,和一个目标数字,使用二分法查找有序数组中是否存在该目标数字,存在时输出查找次数和序号,如果找不到则输出查找次数以及未找到对应的数。,也就是2的对数,比如8个数,3次就可以找到,16个数,4次就可以找到,当数越大时,节约的时间越多。

2024-07-20 21:27:03 296

原创 四、Burpsuite工具之proxy模块详解-intercept功能

过了一个年,感觉好久都没有更新了,今天就从burpsuite的更新开始吧。前面已经说过了burpsuite的安装和proxy代理的配置,今天说一下proxy模块中非常有用的intercept功能。intercept是拦截的意思,在这里相当于拦截请求,可以实时的对请求进行拦截,然后请求参数的篡改,再把请求放通,从而达到实时修改请求的功能intercept的总体界面如下图所示其中下图红框中是可以修改请求目标的相关信息。

2024-02-22 22:23:04 1118

原创 IDEA如何进行远程Debug调试(二)解决jar包运行报错的问题

查看报错是找不到对应的类,那么我们使用jd-gui的反编译工具,看看jar包里面到底是什么情况,为什么会报这个问题,最后发现打的这个包里面并没有我们需要的代码,所以运行的时候会报这个错。然后网上搜了一下,说在build菜单里面进行rebuild Project,然后再重新打包就可以解决这个问题,试一下。上文提到在进行debug远程调试的时候,打包后的jar包本地无法运行,报如下的错误。然后在IDEA中打上断电,进行debug运行代码,发现已经连上了5005的调试端口。

2024-02-04 22:38:45 1104

原创 IDEA如何进行远程Debug调试

IDEA如何进行远程Debug调试

2024-02-01 22:27:32 575

原创 如何通过CVE漏洞编码找到对应的CVE漏洞详情及源码修改地址

如何通过CVE漏洞编号,从而找到漏洞详情以及修改记录等

2024-02-01 22:02:13 1263

原创 解决Could not transfer artifact org.springframework.boot的问题

解决Could not transfer artifact org.springframework.boot的问题

2024-01-30 22:28:22 1557

原创 Apache Flink文件上传漏洞(CVE-2020-17518)漏洞代码分析

Apache Flink文件上传漏洞(CVE-2020-17518)漏洞代码分析

2024-01-30 21:55:30 1166 1

原创 三、Burpsuite工具界面介绍

主要讲解了一下新版burpsuite的界面,已经如何进行使用

2024-01-28 21:35:27 617

原创 二、Burpsuite的代理设置及浏览器代理插件安装

主要讲解burpsuite的代理设置、浏览器的代理插件安装以及如何抓取https的流量

2024-01-24 22:27:43 1821

原创 一、Burpsuite工具的安装

主要讲解burpsuite工具的安装,包括社区版本和PRO版本,初学者使用社区版本就好,高级玩家需要使用PRO版本

2024-01-24 22:13:32 1281

原创 docker如何进入容器中

1、sudo docker exec -it 《容器ID》 bash。2、docker exec -it 《容器ID》 /bin/bash。然后使用如下两种方式均可以直接进入容器,然后就可以进行相关的操作了。当我们拉起一个容器之后,有时候需要进到容器里面去进行一些操作。那么先使用docker ps命令查看拉起的容器。

2024-01-23 22:18:35 713

原创 命令注入之Shellshock漏洞复现(CVE-2014-6271)

命令注入之Shellshock漏洞复现(CVE-2014-6271)

2024-01-23 22:12:17 737

原创 Base64编码原理

详细讲解base64编码的详细方式

2024-01-21 15:01:18 429

原创 命令注入常用的命令拼接符

常见的命令拼接符,可以绕过代码中的一些过滤场景

2024-01-21 13:39:03 941

原创 命令注入之反弹shell

命令注入之反弹shell

2024-01-18 22:34:27 553

原创 ASCII编码和URL编码的关系

URL编码主要采用%加字符ASCII码十六进制来表示原始字符

2024-01-10 22:18:14 668

原创 Apache Flink文件上传漏洞(CVE-2020-17518)漏洞复现分析

Apache Flink文件上传漏洞(CVE-2020-17518)漏洞复现分析

2024-01-08 22:23:41 837

原创 docker-compose命令简单使用

docker-compose启动容器的简单命令使用

2024-01-08 21:56:14 532

原创 解决vulhub下载报错EOF的问题

解决git下载vulhub时报EOF的问题

2024-01-08 21:47:47 471

原创 docker的安装与使用

没办法,只能重新安装一个Ubuntu系统了,这次没有出现什么大的问题,直接安装完成,然后参照下面链接中的内容,进行安装,一次安装成功,真的是服了,折腾了好久。由于安全测试需要安装docker,之前有kali系统,因此一开始想的是直接在kali中进行安装,结果发现安装一直报错,各种报错,折腾了好久也没解决。于是想着能不能直接在win7系统上面安装,也折腾了好久,发现也不行。下面尝试使用docker快速搭建LAMP的环境。

2024-01-04 22:02:53 488

原创 虚拟机安装Ubuntu系统,无法看到安装选项

在使用虚拟机安装Ubuntu系统的时候,由于开始安装的时候我选择了中文,最后导致安装选项无法看到,怎么拖动页面都看不到,急死个人。然后就开始搜,最后发现,将语言修改成英文,就可以了,这样拖动页面就能看到安装选项,最后成功安装。

2024-01-04 21:17:48 720

原创 Kali虚拟机无法连上网络

解决kali Linux无法上网的问题

2023-12-31 18:26:06 673 1

springboot框架demo学习,内含filter、Interceptor、Aspect以及注解形式的aspect

springboot框架demo,其中包含了filter、Interceptor、Aspect以及注解形式的aspect,以及对应的get和post接口,配置好了可以直接跑,省的再自己去搜索进行配置了,用来学习过滤器,拦截器和切面的配置以及执行顺序非常方便,通过日志打印,可以清楚看到请求从浏览器开始,经过过滤器,拦截器,切面一直到接口,再返回到前端的这么一个流程。我当时在写demo的过程中也是全网搜索,遇到了各种各样的问题,浪费了很多时间,希望我的demo能够节省大家的时间,专注于学习源码本省,而不是把时间浪费在搜索各种资源上面。

2024-08-19

反弹shell的几种获取方式.docx

一、反弹shell 二、python pty 方式 三、suid提权的方式 1、 suid权限的设置 2、 找出系统中具有suid权限的命令 3、 find提权 四、sessions的使用方法

2024-08-19

空空如也

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

TA关注的人

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