利用ret2libc绕过DEP安全机制

本文详细介绍了如何利用ret2libc绕过数据执行保护(DEP)机制。DEP设置非代码段和栈空间为不可执行,阻止Shellcode执行。然而,通过将EIP指向system函数地址,可以利用system执行/bin/sh来实现类似Shellcode的功能。文章提供了具体的注入结构,并通过实例演示了如何构造payload,包括填充buf、覆盖返回地址、找到system函数地址等步骤。最后,利用write函数地址和已知的libc库函数相对地址差来确定system的内存地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文中writeup收集自互联网,但本文主题是介绍ret2libc借例子一用,姑且算原创吧。


数据执行保护:

 

       DEP就是将非代码段的地址空间设置成不可执行属性,一旦系统从这些地址空间进行取指令时,CPU就是报内存违例异常,进而杀死进程。栈空间也被操作系统设置了不可执行属性,因此注入的Shellcode就无法执行了

 

 

导向系统库函数执行(ret2libc)攻击方法

      系统函数库(Linux称为glibc)有个system函数,它就是通过/bin/sh命令去执行一个用户执行命令或者脚本,我们完全可以利用system来实现Shellcode的功能。EIP一旦改写成system函数地址后,那执行system函数时,它需要获取参数。而一般32位函数调用是通过压栈来传参的。

     攻击的注入结构是:"A"*n + system_add

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值