ret2text

在安全领域,随着NX保护技术的启用,传统的缓冲区溢出攻击不再有效。本文探讨了Return-oriented Programming(ROP)技术,它是如何通过利用程序中已存在的小片段(gadgets)来改变程序执行流程,从而控制寄存器变量。实验中,检查了NX保护的开启,并分析了在内存优化和溢出条件下的ROP应用,特别是如何找到合适的gadgets和`system`函数调用的`bin/sh`参数偏移量。
摘要由CSDN通过智能技术生成

在这里插入图片描述
Shellcode可以放到bss段然后去执行我们的shell在这里插入图片描述可以控制好几段位置不相邻的代码(gadgets),用rop技术
随着nx保护技术的开启,往堆栈写代码的方式已经发挥不了效果
Rop:Return-oriented Programming(面向返回的编程)
在缓冲区溢出的基础上利用程序已有的小片段,来改变我们程序寄存器变量的值,从而达到控制程序执行流程的效果
所以gadgets是以ret结尾的指令序列,通过这些序列我们可以修改某些地址内容,控制流程
但是gadgets的地址不是固定的,所以我们每次都要想办法获取动态的地址

实验:
Checksec: nx开启了
Disass main
在这里插入图片描述调用的setbuf是优化内存ro的,就是我们有大量内存读写的时候,他会优化你内存的ro读写

Rop两点要求:溢出;能控制返回地址
Gets不控制溢出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值