- 畅销套餐
- 精选套餐
- 人气套餐
- 尊享套餐
- 高薪套餐
- 课程介绍
- 课程大纲
适合人群:
CTFer、计算机专业、了解汇编语言、学习缓冲区溢出等
你将会学到:
CTF比赛PWN题目的入门课程,3个小时冲击PWN!!!
课程简介:
主要讲溢出、常见寄存器、汇编知识、函数调用过程、栈帧、Linux程序保护、突破、ROP(ret2text、ret2shellcode、ret2syscall、ret2Lib)等知识点,使用GDB、IDA、objdump、ROPgadget、pwntools等工具进行学习,通过理论与实践相结合的方式让大家学习PWN更加容易。
课程目录:
第一节:晚安PWN课程介绍 --课程体系,Margin在学习PWN的时候遇到的困惑
第二节:PWN基础知识 --PWN的基本概念,溢出的基础知识,常用寄存器、汇编知识,栈帧以及汇编中函数调用过程。
第三节:Canary保护及突破 -- 二进制文件保护方法,Canary保护原理和突破,GCC命令学习,GDB命令学习。
第四节:ROP-Ret2Text --BSS段、Data段、Text段、rodata段讲解,objdump常见的使用方法,如何通过溢出将程序返回地址修改为text段内容。
第五节:ROP-Ret2ShellCode --什么是shellcode,如果使用溢出执行shellcode
第六节:ROP-Ret2Syscall --系统调用函数、函数调用号,如何用Gadget技术来拼接栈空间内容,达到获取shell的目的。
第七节:ROP-Ret2Libc --如何计算Libc的基地址,如何计算函数的地址?如何获取shell?
课程大纲-缓冲区溢出-CTF-PWN
第1章晚安PWN课程介绍(9分钟1节)
第2章PWN基础(1小时7分钟2节)
第3章Canary保护及突破(30分钟2节)
3-1
Canary保护及突破-理论二进制文件保护方法(Canary保护、NX保护、PIE/ALSR、RelRO),Canary保护原理和突破,GCC命令学习,GDB命令学习。 canary保护是Linux众多保护机制的一种,主要的作用是防御溢出攻击。他的工作原理是在函数执行时,取gs:0x14的值放到某一位置中,我们假设叫A,那么在程序执行结束后,把A位置的值和gs:0x14的值进行异或如果结果为0说明没有被修改,否则被修改了。
[05:51]开始学习3-2
Canary保护及突破-实验二进制文件保护方法(Canary保护、NX保护、PIE/ALSR、RelRO),Canary保护原理和突破,GCC命令学习,GDB命令学习。 canary保护是Linux众多保护机制的一种,主要的作用是防御溢出攻击。他的工作原理是在函数执行时,取gs:0x14的值放到某一位置中,我们假设叫A,那么在程序执行结束后,把A位置的值和gs:0x14的值进行异或如果结果为0说明没有被修改,否则被修改了。
[24:22]开始学习第4章ROP-Ret2Text(12分钟2节)
4-1
ROP-Ret2Text-理论BSS段、Data段、Text段、rodata段讲解,objdump常见的使用方法,如何通过溢出将程序返回地址修改为text段内容。 ret2text 即控制程序执行程序本身已有的的代码 (.text)。这种攻击方法是一种笼统的描述。我们控制执行程序已有的代码的时候也可以控制程序执行好几段不相邻的程序已有的代码 (也就是 gadgets),这就是我们所要说的 ROP 我们要知道对应返回的代码的位置。程序可能会开启某些保护,想办法绕过这些保护。
[04:42]开始学习4-2
ROP-Ret2Text-实验BSS段、Data段、Text段、rodata段讲解,objdump常见的使用方法,如何通过溢出将程序返回地址修改为text段内容。 ret2text 即控制程序执行程序本身已有的的代码 (.text)。这种攻击方法是一种笼统的描述。我们控制执行程序已有的代码的时候也可以控制程序执行好几段不相邻的程序已有的代码 (也就是 gadgets),这就是我们所要说的 ROP 我们要知道对应返回的代码的位置。程序可能会开启某些保护,想办法绕过这些保护。
[08:14]开始学习第5章ROP-Ret2Shellcode(16分钟2节)
5-1
ROP-Ret2Shellcode-理论ret2shellcode,即控制程序执行 shellcode 代码。shellcode 指的是用于完成某个功能的汇编代码,常见的功能主要是获取目标系统的 shell。一般来说,shellcode 需要我们自己填充。这其实是另外一种典型的利用方法,即此时我们需要自己去填充一些可执行的代码。 在栈溢出的基础上,要想执行 shellcode,需要对应的 binary 在运行时,shellcode 所在的区域具有可执行权限。
[04:07]开始学习5-2
ROP-Ret2Shellcode-实验ret2shellcode,即控制程序执行 shellcode 代码。shellcode 指的是用于完成某个功能的汇编代码,常见的功能主要是获取目标系统的 shell。一般来说,shellcode 需要我们自己填充。这其实是另外一种典型的利用方法,即此时我们需要自己去填充一些可执行的代码。 在栈溢出的基础上,要想执行 shellcode,需要对应的 binary 在运行时,shellcode 所在的区域具有可执行权限。
「仅限付费用户」点击下载“ubuntu18安装PWN环境.pdf”
[12:20]开始学习第6章ROP-Ret2Syscall(14分钟2节)
6-1
ROP-Ret2Syscall讲解系统调用函数指令int 0x80,系统调用号讲解,工具ROPGadget的常见使用方法,如何用Gadget技术来拼接栈空间内容,达到获取shell的目的。 这里在讲两个概念:第一:ROP(Return-oriented programming),是一种基于代码复用技术的新型攻击,攻击者供已有的库或可执行文件中提取指令片段、构建恶意代码。 第二:Gadgets是指在程序中的指令片段,有时我们为了达到我们执行命令的目的,需要多个Gadget来完成我们的功能。
[06:50]开始学习6-2
ROP-Ret2Syscall-实验讲解系统调用函数指令int 0x80,系统调用号讲解,工具ROPGadget的常见使用方法,如何用Gadget技术来拼接栈空间内容,达到获取shell的目的。这里在讲两个概念:第一:ROP(Return-oriented programming),是一种基于代码复用技术的新型攻击,攻击者供已有的库或可执行文件中提取指令片段、构建恶意代码。第二:Gadgets是指在程序中的指令片段,有时我们为了达到我们执行命令的目的,需要多个Gadget来完成我们的功能。
[07:38]开始学习第7章ROP-Ret2Libc(43分钟2节)
7-1
ROP-Ret2Libc-理论主要讲解在程序中找不到命令执行函数(例如:system、execve)时,如何通过Libc来获取shell,涉及知识:什么是Libc、plt/got表的概念,函数调用时plt/got表的作用分别是什么,ret2Libc的步骤,获取Libc版本的方法以及如何通过程序获取shell。
[07:28]开始学习7-2
ROP-Ret2Libc-实验主要讲解在程序中找不到命令执行函数(例如:system、execve)时,如何通过Libc来获取shell,涉及知识:什么是Libc、plt/got表的概念,函数调用时plt/got表的作用分别是什么,ret2Libc的步骤,获取Libc版本的方法以及如何通过程序获取shell。
[35:43]开始学习
“Margin”老师的其他课程更多+