- 博客(20)
- 收藏
- 关注
原创 shiro 反序列化攻防
Apache Shiro 是一款常用的 Java 安全框架,其 RememberMe 功能因使用 Java 原生序列化方式存在严重安全隐患,导致多个版本出现远程代码执行(RCE)漏洞。本文主要分析了 Shiro 的两个典型反序列化漏洞:Shiro-550(CVE-2016-4437)和 Shiro-
2025-05-16 14:38:30
619
5
原创 XXS漏洞原理
XSS(跨站脚本攻击)是一种常见的 Web 安全漏洞,攻击者通过向网页注入恶意脚本,利用浏览器的漏洞在用户端执行恶意操作。XSS 漏洞主要有三种类型:反射型 XSS、存储型 XSS 和 DOM 型 XSS。反射型 XSS 通过恶意链接诱使用户点击,立即执行脚本;存储型 XSS 将恶意脚本存储在服务器中,导致后续访问的用户都被攻击;DOM 型 XSS 通过修改客户端的 DOM 来执行恶意脚本。XSS 漏洞的危害包括窃取用户信息(如 Cookie)、进行钓鱼攻击、篡改页面内容以及攻击管理员。防御 XSS 攻击的
2025-05-14 10:45:47
725
1
原创 深入理解 Linux 权限控制机制
本文简要介绍了 Linux 系统中的权限控制机制,包括文件权限的基本结构、权限类型及其作用。通过常用命令 ls -l、chmod、chown 等,说明如何查看与修改权限。同时涵盖特殊权限(SUID、SGID、Sticky Bit)及用户权限切换方式(su、sudo),帮助读者掌握 Linux 权限管理的核心方法,提升系统安全性。
2025-05-11 11:52:08
915
27
原创 Linux 文件系统中的数据定位:inode 与 dentry 的技术解析
这篇文章介绍了 Linux 文件系统的基本结构,重点讲了 inode 和 dentry 的作用。inode 用来存储文件的属性信息,而 dentry 用来加快路径查找。文章还列出了常见的 Linux 目录及其功能,帮助读者了解 Linux 是如何管理文件的。
2025-05-09 09:39:53
660
3
原创 JNDI 注入原理解析
本文简要介绍了 JNDI 的基本原理及其在 DNS 和 LDAP 查询中的应用,同时展示了通过用户输入实现协议动态切换的机制。最后,文章指出 JNDI 注入漏洞的风险来源于其自动协议解析功能,可能被利用执行远程恶意代码,带来安全隐患。
2025-05-07 18:55:27
1113
11
原创 揭秘Java反射机制:动态控制与潜在风险
Java 反射机制是一种强大的运行时特性,允许程序在执行过程中动态地加载类、创建对象、调用方法及访问字段,不依赖于编译时已知的类型信息。它为框架设计、插件化开发、依赖注入和动态代理等高级编程提供了技术支撑。然而,这种灵活性也带来了封装性破坏、性能下降和安全风险,特别是在反序列化漏洞和内存马攻击中常被利用。因此,反射既是提升 Java 应用可扩展性的重要工具,也是必须谨慎使用的双刃剑。
2025-05-05 11:43:09
727
14
原创 Web 服务架构与技术组件概述
本文简要介绍了 Web 服务的核心流程及技术组成,包括静态与动态资源的处理、Web 服务器与应用服务器的协作。通过对 Web 服务器、容器和中间件的对比,揭示了它们各自的作用和优势,帮助你更好地理解现代 Web 架构的运作方式。
2025-04-25 18:56:59
2061
19
原创 搜索引擎的高级语法
在开发过程中,程序员常常陷入技术难题,时间紧迫却难以找到精准答案。本文将揭示如何利用搜索引擎的高级搜索技巧,特别是 site指令,在 Stack Overflow、SegmentFault 等技术平台上进行精准搜索。通过限定搜索范围,开发者可以迅速找到高质量的解答和最新的技术文章,省时省力,快速解决问题。掌握这些高效搜索技巧,将大大提升你的工作效率,让你在技术挑战面前游刃有余!
2025-04-22 17:16:16
2213
32
原创 Linux提权具体方法
在渗透测试和权限维持过程中,提权是实现系统控制和数据获取的重要环节。本文系统梳理了几种常见且实用的提权方式,包括内核漏洞利用、/etc/passwd 配置提权、Docker 容器逃逸、定时任务滥用、SUID 权限滥用以及 Sudo 提权。每种方法均结合实际案例进行讲解,帮助读者理解其原理与操作流程,提升在实战环境中的提权能力。
2025-04-22 12:06:36
682
1
原创 c\c++的输入输出
在 C 中,建议使用scanf()进行格式化读取,用fgets()读取整行,用fgetc()或getchar()读取单个字符。在 C++ 中,建议使用cin >>进行格式化读取,而cin.get()、cin.getline、getline(string)有各自的适用情况。注意fgets()和cin.get()在对换行符的清理方面有所区别。
2025-04-20 19:06:39
882
3
原创 Linux提权原理
在当前的信息化基础设施中,Linux 操作系统因其开源、高效和稳定性,被广泛应用于 Web 服务器、数据库、防火墙和物联网(IoT)等关键领域。随着部署数量的增加,Linux 主机的安全问题日益突出,特别是权限提升,已成为渗透测试与防御中的重点内容。在内网环境中,大量 Linux 系统的存在使得提权技术的研究对于发现风险和提升系统安全尤为重要。Linux 提权主要分为内核提权和其他类型提权。内核提权的优点是针对存在漏洞的内核版本通常可通用利用,但缺点是稳定性差,易导致 shell 丢失或系统崩溃。
2025-04-20 17:29:12
1072
4
原创 Linux入侵排查
结合常见攻击事件及实际应急响应案例,系统整理了Linux服务器入侵后的排查与处置方法,形成了一套清晰的排查思路,既适用于实战中的安全事件响应,也可用于CTF 决赛中的 Linux 系统信息收集与分析。
2025-04-20 15:27:46
893
1
原创 Fastjson反序列化漏洞
JSON是一种轻量级的数据交换格式.它使用键值对(key-value)的结构表示数据,易于人阅读和编写,也易于机器解析和生成。虽然起源于 JavaScript,但现在已经成为编程语言之间通信的通用格式,比如在前后端之间传输数据、配置文件、接口请求等场景中广泛使用。
2025-04-17 15:32:06
966
1
原创 堆入门基础
在程序运行过程中,堆可以提供动态分配的内存,允许程序申请大小未知的内存。堆其实就是程序虚拟地址空间的一块连续的线性区域,它由低地址向高地址方向增长。我们一般称管理堆的那部分程序为堆管理器。对于不同的应用来说,由于内存的需求各不相同等特性,因此目前堆的实现有很多种,具体如下目前 Linux 标准发行版中使用的堆分配器是 glibc 中的堆分配器:ptmalloc2。ptmalloc2 主要是通过 malloc/free 函数来分配和释放内存块。(glibc是最重要的堆管理器)
2024-11-07 17:02:41
815
原创 fastbin attack
fastbin attack 是一类漏洞的利用方法,是指所有基于 fastbin 机制的漏洞利用方法。存在堆溢出、use-after-free 等能控制 chunk 内容的漏洞漏洞发生于 fastbin 类型的 chunk 中其中,前两种主要漏洞侧重于利用free函数释放真的 chunk 或伪造的 chunk,然后再次申请 chunk 进行攻击,后两种侧重于故意修改fd指针,直接利用malloc申请指定位置 chunk 进行攻击。
2024-08-22 21:34:50
1725
1
原创 fastbin attack
我们已知 fake chunk 的大小为 0x70,于是只需要利用 fast bin attack,申请一个指向 fake chunk 的指针即可。但是这里有一个小 trick,在上述泄露 libc 的操作中,我们的 idx2 指针仍在,但对应的大小为 0x90 的 chunk 在 unsorted bin 中,而当 fastbin[0x70]为空时,要申请 0x70 的 chunk,会将 0x90 的 chunk 分割 0x70 以满足申请,剩余 0x20 进入 reminder。在pwngdb里面用。
2024-08-18 22:41:40
1579
原创 pwn堆做题流程
首先根据题目提示的ubuntu版本号查找libc版本,利用glibc-all-in-one下载相应的libc(具体的使用方法可以参考github上的使用文件)4.一般存在漏洞的位置就在edit或者delete函数当中,分析这两个函数一个找到漏洞。5.修改程序libc,始得程序在本地打通。利用chlibc.sh脚本实现快速的替换。3.根据add函数分析程序使用的结构体。修改的部分主要包括功能函数、结构体。2.结合程序功能修改源码函数名称。根据变量的功能重命名变量。chlibc.sh源码。
2024-08-16 17:14:32
403
原创 how2heap(常见的堆漏洞)
双向链表中移除/添加一个chunk时,会发生断链的操作,这个断链的过程就叫做unlink。注意事项:unlink不发生在fastbin和smallbin中,所以fastbin和smallbin容易产生漏洞。我们一般是通过已知的全局变量伪造一个已经free的chunk。chunk在free的时候会进行合并空闲chunk的操作,有向前和向后两种。
2024-08-15 22:14:34
2287
1
原创 pwn入门(堆的基础知识)
在程序运行过程中,堆可以提供动态分配的内存,允许程序申请大小未知的内存。堆其实就是程序虚拟地址空间的一块连续的线性区域,它由低地址向高地址方向增长。我们一般称管理堆的那部分程序为堆管理器。对于不同的应用来说,由于内存的需求各不相同等特性,因此目前堆的实现有很多种,具体如下目前 Linux 标准发行版中使用的堆分配器是 glibc 中的堆分配器:ptmalloc2。ptmalloc2 主要是通过 malloc/free 函数来分配和释放内存块。(glibc是最重要的堆管理器)
2024-08-14 21:04:27
1132
2
Linux 环境下 Docker 安装与配置的 Bash 自动化脚本实现
2025-04-21
面向多发行版的 Linux 软件源一键更换工具
2025-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人