码迷,mamicode.com
首页 > 其他好文 > 详细

【CTF】逆向基础2

时间:2015-04-05 23:23:08      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

  • ret2libc的基本原理

ret2libc是绕过DEP的一个思路,顾名思义是利用系统中已经存在的系统函数来构造对DEP的攻击,思路大概有三种,通过ZwSetInformationProcess函数将DEP关闭、通过VirtualProtect函数将shellcode所在内存设为可执行、通过VirtualAlloc函数开辟具有执行权限的空间。

  • format string利用的基本原理

format string利用基本上是为了达到一个内存任意写的目的,利用printf函数不定参数个数的参数寻址方式的漏洞,以及转换指示符%n。

  • ROP的基本原理

举一个简单例子,说明ROP构造Gadget过程,栈空间形式化表示如下:

技术分享

Gadget构造过程描述:

假设攻击者打算将V1值写入V2所指向的内存空间,即Memory[V2] = V1;攻击者控制了栈空间,能够构造栈空间布局;攻击者采用间接方式,寻找等效指令实现,通过寻找Gadget指令实现;

Gadget执行过程描述:

1) 初始时,栈顶指针为ESP,所指向内容为V1,EIP=a1。2) POP操作,ESP值加4,POP相当于内存传送指令。3) POP和MOV指令执行完,CPU会继续向下顺序执行。4) RET相当于POP+JMP,所以RET操作,ESP值也会加4。

技术分享

ROP利用Gadget图形示意(摘自国外一份ppt):

技术分享

【CTF】逆向基础2

标签:

原文地址:http://www.cnblogs.com/windcarp/p/4394896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!