// TAG
#

Pwn

关于 Pwn 的技术记录与实践总结,共计 8 篇文章。

2026/05/04

整数溢出

整数溢出(Integer Overflow)是指整数运算结果超出了对应类型能够表示的范围,导致数值回绕、截断或符号解释错误。它本身不一定直接劫持控制流,但经常会破坏长度检查、内存分配和边界判断,最终引出栈溢出、堆溢出或越界读写。 原理 计算机中的整数通常以固定宽度保存,例如...

2026/03/09

栈溢出技巧

栈迁移 栈迁移 (Stack Migration),又称为 Stack Pivoting (栈枢纽/栈反转),是二进制漏洞利用中一种非常重要且优雅的技巧。 它的核心目的是:当栈溢出可用的空间非常有限(不足以存放完整的 ROP 链或 Shellcode)时,利用特定的汇编指令...

2026/03/09

基本ROP

ROP(Return-Oriented Programming) 是利用栈溢出控制程序执行流程的一种经典技术。 在栈溢出题目中,攻击者通常通过控制返回地址劫持程序执行流。常见利用方式包括 ret2text、ret2shellcode、ret2syscall、ret2libc...

2026/02/04

堆溢出

堆溢出 (Heap Overflow) 是指发生在程序堆 (Heap) 内存区域的缓冲区溢出漏洞。 与栈溢出(Stack Overflow)相比,堆溢出的利用难度通常更高,机制更复杂,但也更灵活。因为堆是动态分配的(malloc/new),没有像栈那样固定的“返回地址”可以...

2026/01/26

堆介绍

堆 (Heap) 是计算机内存管理中用于动态内存分配的一个区域。 与栈(Stack)不同,堆上的内存不由编译器自动管理,而是由程序员通过代码显式地申请(malloc/new)和释放(free/delete)。如果在高级语言(如 Java, Python)中,则由垃圾回收器(...

2026/01/22

格式化字符串漏洞

原理 格式化字符串漏洞的本质是:程序将用户可控的输入作为了格式化函数(如printf)的格式化字符串参数,导致格式化函数在解析时,错误地越界访问或修改了内存中的数据 适用条件 格式化字符串漏洞通常需要满足以下条件: 用户输入能够直接或间接控制格式化字符串本身 程序调用了 p...

2026/01/22

栈溢出介绍

栈溢出 (Stack Overflow / Stack Buffer Overflow) 是二进制安全中最基础、最经典,也是最核心的内存破坏漏洞。它是所有 ROP、BROP、Ret2Reg 等高级攻击技术的根基。 简单来说,它的原理是:向栈上的缓冲区写入了超过其容量的数据,...

2026/01/22

栈介绍

栈的数据结构特性 栈是一种后进先出(LIFO, Last In First Out)的数据结构。 主要操作为压栈(push)和出栈(pop),且均针对栈顶进行操作。 程序运行时的栈 在汇编程序运行时,栈用于保存函数调用信息和局部变量。 栈的增长方向:从进程地址空间的高地址向...