星巡研究院

渗透视角:漏洞基础原理

第一章讲约束从哪来,本章把已被打破的约束按"破在哪一层"归类。学界分类只有两大类:内存破坏类打破的是物理内存里的执行状态,语义混淆类打破的是解析层的逻辑边界。这个分界不是学术游戏,它直接决定漏洞通常通向什么后果——前者攥着 CPU 的执行流,后者困在解释器的权限里。 ### 2.1 内存破坏类:物理内存的越界与状态错误 内存破坏类的共同特征:程序自己内存的物理完整性被破坏。不是逻辑理解错了,而是内存里的字节被写错位置、写错状态,程序赖以执行的机器状态——返回地址、函数指针、堆元数据、对象虚表——被篡改。这类破坏直接动到执行流的载体,一旦踩中控制流位置,往往通向控制流劫持。 #### 2.1.1 栈溢出:缓冲区越界覆盖返回地址 先把一个函数的栈帧布局从低地址到高地址摆出来(x86-64,文字示意): ```text 低地址 [局部缓冲区 buf,固定16字节] [保存的帧指针 saved RBP,8字节] [返回地址 saved RIP,8字节] ← 函数返回时 CPU 从这里取下一跳 高地址 ``` 函数在栈上开一块固定大小的局部缓冲区,用不检查长度的拷贝把
这是进阶内容

升级理论包获取本册全部章节,从机器本质系统入门