标签: PWN

5 篇文章

GOT & PLT (1)
前言 在学习 Hijack GOT 这种 PWN 攻击方式时 , 需要理解程序在链接库内定位函数的两张表 ------ GOT( 全局偏移量表 ) 和 PLT( 程序链接表 ) , 这是非常关键的 因为之前没有接触过这方面内容 , 所以本章先不去探究 GOT 和 PLT 这两张表 , 而是看一看基础内容 一些基础内容 在研究 GOT 和 PLT 这…
从零学习PWN(4)-ROP
ROP — 修改返回地址 , 让其指向内存中已有的一段指令 该类攻击方法的主要任务是 : 在内存中确定某段指令的地址 , 并用它覆盖返回地址 . 前面提到了 Return2libc 这种攻击方式 , 它同样可以定位到指定内存地址并覆盖返回地址 . 但很多时候目标函数无法在内存中找到 , 目标操作没有完美适配的特定函数 , 这时就需要在内存中寻找多个…
从零学习PWN(3)-Return2libc
Return2libc --- 修改函数返回地址 , 让其指向内存中的一段指令 该类攻击方法的主要任务是 : 在内存中确定某个函数的地址 , 并用其覆盖掉返回地址 . 由于 libc 动态链接库中的函数被广泛使用 , 所以大概率可以在内存中找到该动态库 , 同时由于该库包含了一些系统级函数( 比如 system() ... ) , 因此可以使用这些…
从零学习PWN(2)-ShellCode
ShellCode --- 修改函数返回地址 , 让其指向溢出数据中的一段指令 该类攻击方法的主要任务是 : 在溢出数据内包含一段攻击指令 , 用攻击指令的起始地址覆盖函数的返回地址 攻击指令一般是用来打开Shell的 , 从而可以获得当前进程的控制权 , 所以这类指令片段也被称为 : ShellCode ShellCode可以用汇编语言写后转换成…
从零学习PWN(1)
简介 本文是根据长亭科技大佬 jwizard 的教程总结而成的 . 之前学习过一些基础课程 , 现在正式开始学习PWN 开始 缓冲区溢出是个非常古老的话题 , 计算机程序的运行依赖于函数调用栈 . 栈溢出是指在栈内写入超出长度限制的数据 , 从而破坏程序运行甚至获得系统控制权的手段 , 这里以 32位x86架构下的程序为例 , 学习什么是栈溢出 如…