自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 看雪学院闯关1-10

放到CyberCher会自动转码为文本:iodj{7115i261eig7i42d5fg7412fh86ded7h},{}有这两个符号,位置也对,题意很明确,凯撒加密,放到在线网站,偏移量可以根提第一个字符对应f去计算,也可以一个个数字去试,最后是3。一般MD5值是32位由数字“0-9”和字母“a-f”所组成的字符串,里面有一个o,把他去掉无法解密,那么就替换掉。双击flag寻找flag在内存中的值 a3=38,所以寻找往后寻找38位。很显然考察的是加密方式,这里的密码看着像是base64,解密尝试一下。

2024-03-11 22:58:53 1455

原创 SPEL表达式及注入漏洞

SPEL,全称为Spring表达式语言,是一个由 Spring 框架提供的表达式语言。它是一种基于字符串的表达式语言,可以在运行时对对象进行查询和操作。SpEL 支持在XML和注解配置中使用,它可以在Spring框架的各种组件中使用,如Spring MVC 控制器、Spring Security 安全框架、Spring Data 数据访问框架等。它可以方便地访问对象的属性、调用对象的方法、进行数学运算、逻辑运算、正则表达式匹配等操作。

2024-03-11 22:55:21 1970 1

原创 通过ACPI检测沙箱-反虚拟机

ACPI 表示高级配置和电源管理接口(Advanced Configuration and Power Management Interface),对于Windows2000,ACPI定义了Windows2000、BIOS和系统硬件之间的新型工作接口。这些新接口包括允许Windows 2000控制电源管理和设备配置的机制。很好的是,ACPI可以通过R3的 NtQuerySystemInformation 拿得到。我们本次介绍的是一个新技术,让我们编写代码,获取虚拟机与物理机之间的差异。这个POC检测什么?

2024-03-09 20:42:13 368

原创 baijiacms--php代码审计

baijiacms代码审计 php,主要是思路

2024-03-09 20:26:28 1750

原创 Invoke-PSImage免杀过360杀毒

它会利用图片中的每个像素点最后4位有效位的2个颜色值来储存Payload数据,虽然图片的质量会受到影响,但是一般来说是看不到太大区别。图片需要存储为PNG格式,由于payload数据存储在颜色值中,因此这种格式进行无损压缩并且不会影响到payload的执行,它可以接受目前绝大多数类型的图片类型进行输入,但输出必须是PNG格式,因此输出的图片数据需要是无损的。图片的每一个像素都需要存储脚本的一个字节,所以你需要根据脚本中的字节数据大小来选择图片(尽可能多的像素点)。应该是图片选择的不合适,

2024-03-05 23:40:11 375

原创 jsp webshell 初识

访问得到os.name的信息 代码中可以接收参数cmd 我们提供参数看看 cmd=ipconfig。没问题这里(只是我测试的时候没有处理图片,就不放置了)很有可能是字节输出的代码被检测到了,我们删除了看一下。果然,删除以后检测不到了,那我们想办法绕过。之前是执行exec参数,这次是可疑文件。放到IDEA中webapp下测试一下。在D盾跑还是被检测到了,换一种方式输出字节流。

2024-03-02 22:47:58 394

原创 java代码审计 URLDNS链

而正是因为在HashMap中,Entry的存放位置是根据Key的Hash值来计算,然后存放到数组中的。所以对于同一个Key,在不同的JVM实现中计算得出的Hash值可能是不同的。我们发现了URL类,它有一个有趣的特点,就是当执行hashCode方法时会触发当前URLStreamHandler的hashCode方法。前面主要是使用的一些防止数据不一致的方法,我们可以忽视。URLDNS链是java原生态的一条利用链,通常用于存在反序列化漏洞进行验证的,因为是原生态,不存在版本限制。

2024-02-27 09:44:02 334

原创 Cookie和Session是什么

Session:客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是Session。Cookie:是存储在用户浏览器中的小型文本文件,用于在用户和服务器之间传递数据。Cookie和Session都用于管理用户的状态和身份,Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的Cookie得到客户端特有的信息,从而动态生成与该客户端相对应的内容。

2024-02-14 23:28:12 398

原创 计算机网络部分面试习题

这样的好处是连接可以被重新使用,之后发送 HTTP请求的时候不需要重新建立TCP 连接,以及如果维持连接,那么SSL的开销也可以避免。Cookie:是存储在用户浏览器中的小型文本文件,用于在用户和服务器之间传递数据。Cookie和Session都用于管理用户的状态和身份,Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的Cookie得到客户端特有的信息,从而动态生成与该客户端相对应的内容。

2024-02-14 23:27:22 313

原创 CVE-2020-1957 Apache Shiro 认证绕过漏洞

admin/ 就会进入到 springboot中. springboot对于每一个进入的request请求也会有自己的处理方式,找到自己所对应的mapping. 具体的匹配方式是在:org.springframework.web.util.UrlPathHelper 中的 getPathWithinServletMapping(),然后匹配到了/xxx/..;/admin/这个路径,在shiro看到“;由于/xxx/.. 截断了 并不会匹配到 /admin/** 所以shiro权限校验就会通过。

2024-02-14 23:26:20 469

原创 springboot-Bean的生命周期以及循环依赖--面试

Bean的循环依赖是指A依赖于B,B又依赖于A这样的闭环依赖问题,在spring中,通过三个对象缓存区来解决循环依赖问题,这三个缓存区被定义到了DefaultSingletoonBeanRegistry中,分别是singletonObejcts用来存储创建完毕的Bean,earlySingletonObjects用来存储未完成依赖注入的Bean,还有SingletonFactories用来储存创建Bean的ObjectFactory。假如现在A依赖B,B依赖A,整个创建的过程是这样的。

2024-02-07 17:35:31 376

原创 SpringBoot-IOC容器初始化流程--面试

IOC容器的初始化,核心工作是在AbstractApplicationContext.refresh方法中完成的。在refresh方法中主要做了几件事。IOC容器初始化流程。

2024-02-06 20:43:41 342

原创 SpringBoot的启动流程-面试

总的来说,Springboot启动的核心就两步,创建SpringApplication对象以及run方法的调用,并且在run方法中真正的实例化容器,并创建容器中所需要的Bean实例,最终返回。SpringBoot启动,其本质就是加载各种配置信息,然后初始化IOC容器并返回。SpringBoot的启动流程。

2024-02-06 16:48:52 334

原创 OpenSSL 心脏滴血漏洞(CVE-2014-0160)

当B收到A的请求包后,并没有验证A包的实际长度,而是简单的把请求包中说明的长度当作data的实际长度,于是当请求包中说明的长度与请求包实际长度不同时,问题就产生了。假设A构造一个请求包,它的实际内容长度只有1,而却告诉B它的长度是65535,那么B接收到这个包后就会把A的内容当作65535来处理,其实到这里,问题还不算严重,最严重的问题出在,心跳的响应包还需要附带请求包还需要附带请求包的全部内容,这就需要程序做一次将请求包的数据从它所在的内容拷贝到响应包的内存里的操作。(因为攻击者可能通过漏洞获取私钥。

2023-12-25 23:13:29 492 1

原创 Python 安全开发---Socket、爬虫

Requset爬虫技术、lxml数据提取、异常处理、Fofa等使用说明。Python开发--批量Fofa&SRC提取&POC验证。1.获取到可能存在漏洞的地址信息 --可以借助Fofa。主要涉及点:Socket、爬虫、正则表达式、框架开发。2.原生利用icmp,tcp,udp等协议获取。3.利用第三方模块库nmap等加载扫描获取。2.批量请求地址信息进行判断是否存在。1.原生利用ping进行获取。渗透测试框架POC开发。

2023-12-16 23:14:37 487 1

原创 解析 kernel32.dll 的导出目录并查找特定 API 函数的内存地址

注意:有些函数在kernel32.dll的导出目录中存储的并不是函数的真实地址,可能会通过导出表的得到的地址去调用另一个模块中的内核中的函数,例如heapalloc函数。通过获取 API 函数的名称在导出表中的位置,你可以计算出函数的内存地址。在导出表中,函数序号是从 1 开始的,而在数组中的索引是从 0 开始的。因此,为了获取正确的函数地址,需要将函数序号减去 1,以匹配数组的索引。在导出表的 RVA 处,你需要解析导出表结构,找到需要的 API 函数的名称在导出表中的位置。首先必须明白PE结构。

2023-12-16 22:57:30 540 1

原创 Maven项目架构管理攻击

localRepository>D:\迅雷下载\apache-maven-3.9.5\maven-repo</localRepository>Maven会规定你如何去编写java代码,必须按照这个规范。3.进入cmd窗口下 输入mvn-v 查看环境是否配置完成。值:D:\迅雷下载\apache-maven-3.9.5。新建一个文件夹,maven-repo 复制目录。进入conf文件夹下的settings.xml。值:%MAVEN_HOME%\bin。Maven核心思想:约定大于配置。

2023-12-12 19:18:01 381

原创 自实现内存移动

通常使用 RtlMoveMemory 这个函数 或者memcpy memmove,达到的目的都是移动内存空间内容。

2023-12-12 19:15:20 334

原创 前端:垃圾回收与内存泄漏

计算了一个 年龄, 单纯看代码,我们不能确定user这块的数据在后续是否会使用到, 如果我们在后续赋值user=null;那么垃圾回收器就会确定uesr之前的数据是垃圾,将之回收掉,所以我们可以认为垃圾回收器回收的东西是垃圾的子集。那我们就希望可以把这块垃圾回收掉,然后写入新的东西 --具有这种作用的叫做垃圾回收器,这件事的过程叫做垃圾回收。如果程序运行到一个时间点,有一些内存空间不再需要了,这些内存空间称为垃圾,新生代/旧生代 generation 星历图。垃圾回收的机制 是一套算法--标记回收。

2023-12-05 23:34:02 355 1

原创 Django URL跳转漏洞(CVE-2018-14574 )

即Django默认配置下,如果匹配上的URL路由中最后一位是/,而用户访问的时候没加/,Django默认会跳转到带/的请求中。即在path开头为//baidu.com的情况下,Django没做处理,导致浏览器认为目的地址是绝对路径,最终造成任意URL跳转漏洞。对那些末尾没加/的url自动填补/然后重新发起请求 所以如果在末尾加上了/是不会跳转成功的。3.只要在url后加上//想跳转的网页,即可实现跳转。命令:docker-compose up -d。复现环境:vulhub。

2023-11-01 18:52:46 190 1

原创 C++ Visual stdio detour库的配置

进入detour的src目录下 输入nmake 然后导入visual stdio中。找到这个工具,注意版本问题,这里是2019。

2023-10-28 22:25:45 47 1

原创 VEH hook

终止当前程序的执行-->调试器(进程必须被调试,向调试器发送EXCEPTION_DEBUG_EVENT消息)-->执行VEH-->执行SEH-->TopLevelEH(进程调试时不会被执行)-->执行VEH-->交给调试器(上面的异常处理都说处理不了,就再次交给调试器)-->调用异常端口通知csrss.exe。思路就是不断改变某一块内存属性,当执行命令或者某些操作的时候,执行的内存属性是可执行的,当功能模块进入睡眠的时候将内存属性改为不可执行。然后就是注册异常函数,这个异常函数就是为了恢复可执行内存属性。

2023-10-16 10:29:07 190 1

原创 获取模块基址

在 Windows 中,使用动态链接库(DLL)的函数通常通过在运行时获取函数的地址来调用。这个过程被称为 "API 动态解析"。

2023-10-16 10:21:52 441 1

原创 DVWA详解

DVWA通关攻略

2023-10-16 10:20:31 315 1

原创 认识分离免杀

WinHttpOpenRequest //通过hconnect句柄创建一个hRequest句柄,用于发送数据与读取从服务器返回的数据。WinHttpReceiveResponse //发送请求成功则准备接收服务器的response。WinHttpConnect //通过上述句柄连接到服务器,需要指定服务器ip和端口号。两种思路:一是从socket连接加载,客户端连接c2端口,返回shellcode。WinHttpOpen //初始化一个winhttp-session句柄,c++文件流多复习复习。

2023-10-16 10:18:21 81

原创 shellcode加载方式

注:lea是“Load Effective Address ”的缩写 --加载有效地址。源文件->添加->资源->导入->CS生成的.bin文件->资源类型(xxx)在resource.h查看资源ID(#define IDR_XXX1)5.线程池等待对象回调函数执行--我最喜欢用的方式。这也是一个优质的执行方法,值得深入研究一下。7.NtTestAlert+APC执行。6.创建纤程(Fiber)执行。纤程是比线程更小的执行单位。

2023-10-16 10:07:57 269 1

原创 解析导入表及自实现GetProcAddress

对PE结构的导出表进行解析

2023-07-19 16:27:59 155

转载 pe文件结构 基础篇

转自看雪学院

2023-07-08 14:00:55 778 1

空空如也

空空如也

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

TA关注的人

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