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
반응형