啥也不会还想学PWN

本文探讨了在实际环境中如何利用栈溢出进行PWN攻击,通过覆盖返回地址为poprdiret及/bin/sh地址,进而调用system函数执行命令。这种方法涉及了栈帧操作和函数调用的原理,对于理解底层安全有较高难度。
摘要由CSDN通过智能技术生成

今天继续学习PWN的攻击方式。

之前学习的攻击方式,都是在理想环境下实现的。比如,系统会提供一个现成的system或者execv函数来实现劫持。

那么换到实际的环境中,应该如何操作呢。

其实,如果我们拿到libc中函数的地址,我们可以直接调用libc中的函数,然后传递参数,使用call 函数调用。

接下来问题就在如何传参了。

思考:如果是直接move然后+call 的话,那就相当于是ret2shellcode,在还没法写shellcode代码的情况下,我们需要考虑别的办法。

后来我也不知道怎么做,学习其他博主的博客才略微知道一点:

考虑这种形式的栈溢出:将返回地址覆盖为这样一段代码:pop rdi ret --- /bin/sh地址-----system。

这种思路的话就是:函数到放回地址,首先执行pop rdi ret ,此时栈帧到了/bin/sh地址,它就会pop出来给到rdi,rsp到了system ,然后ret ,跳转到system,相当于是在/bin/sh地址执行了system函数。

这样就借助这个ret的操作实现了system的执行(不知道我这么理解对不对)。

这部分难了起来,进度慢了不少。我自己慢慢体会吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值