PWN学习笔记(一)Basic Rop

此学习笔记主要基于CTF WIKI 中的Basic rop部分。 网址为:https://wiki.x10sec.org/pwn/linux/stackoverflow/basic-rop/ --------------------------------------------------------------------首先翻译了一下文章的开头,内容为:打开NX保护后,很难继续直接将代码注入堆栈或堆中。攻击者也提出了相应的绕过保护的方法。目前最主要的是面向返回的程序设计。主要思想是基于堆栈.
摘要由CSDN通过智能技术生成
 此学习笔记主要基于CTF WIKI 中的Basic rop部分。附攻防世界cgpwn2的WP
 网址为:https://wiki.x10sec.org/pwn/linux/stackoverflow/basic-rop/
 --------------------------------------------------------------------

首先翻译了一下文章的开头,内容为:
打开NX保护后,很难继续直接将代码注入堆栈或堆中。攻击者也提出了相应的绕过保护的方法。目前最主要的是面向返回的程序设计。主要思想是基于堆栈缓冲区溢出使用程序中现有的小片段。)改变某些寄存器或变量的值以控制程序的执行流。所谓gadgets就是以ret结尾的指令序列,通过这些指令序列,我们可以修改某些地址的内容,以方便控制程序的执行过程。
之所以称之为ROP,是因为核心是使用指令集中的ret指令来改变指令流的执行顺序。ROP攻击通常必须满足以下条件
1.程序有溢出,可以控制返回地址。
2.您可以找到符合条件的小工具以及相应小工具的地址。
3.如果小工具的地址不是每次都固定的,那么我们需要找到一种方法来动态获取相应的地址。

可以从中获取的信息有:
1.使用ROP的前提是有栈溢出
2.ROP链由一系列小片段构成,对于这些具有特定作用的小片段我们可以将它们组装起来构造出payload,最终获取flag
3.寻找的这些小片段必须含有ret指令 。

一.ret2text
第一个例子 ret2text 这是一个简单的栈溢出,没有用到rop的方法,在此不做赘述。

二.ret2shellcode
首先是最基本的检查
在这里插入图片描述
可以看到这是一个32位的ELF文件,基本没有保护。
然后我们用IDA看一下反编译后的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值