Wargame/H4C

System Hacking - apple pie

wyv3rn 2023. 7. 1. 14:41
728x90
반응형

1. intro

2. code 및 분석

2.1.  code

unsigned __int64 vuln()
{
  char buf[56]; // [rsp+0h] [rbp-40h] BYREF
  unsigned __int64 v2; // [rsp+38h] [rbp-8h]

  v2 = __readfsqword(0x28u);
  printf("0x%llx\n\n", initialize);
  puts("I like apple pie! Do you like apple pie??");
  read(0, buf, 0x200uLL);
  printf("Input : %s\n", buf);
  if ( strncmp(buf, "Yes", 3uLL) )
  {
    puts("JUSY SAY 'Yes'!!!");
    exit(0);
  }
  puts("That's right! :)");
  puts("Okay. I'll give you a chance!");
  read(0, buf, 0x200uLL);
  return __readfsqword(0x28u) ^ v2;
}

2.2. 분석

main 함수는 별다른 역할은 하지 않고 vuln 함수를 실행해준다.

이 함수는 위와 같으며, bof가 발생한다.

 

3. 취약점 확인 및 공격 준비

3.1. 취약점

buffer overflow +ROP

3.2. 공격 준비

제목에서도 볼 수 있듯 PIE가 걸려있는 문제이다.

다만 보호기법을 보니 RELRO는 걸려있지 않다.

[*] '/home/wyv3rn/h4c/apple_pie'
    Arch:     amd64-64-little
    RELRO:    No RELRO
    Stack:    Canary found
    NX:       NX enabled
    PIE:      PIE enabled

앞의 bof 문제와 크게 다르지 않게 문제를 풀 수 있다.

728x90
반응형