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

-M intel 以intel模式显示
一个显示system函数,一个要显示所有的函数,找到前面的bin/sh参数
利用ROP技术绕过NX保护执行ret2text

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

被折叠的 条评论
为什么被折叠?



