728x90
반응형
1. intro
2. code 및 분석
2.1. code
int __cdecl main(int argc, const char **argv, const char **envp)
{
char s[256]; // [rsp+0h] [rbp-100h] BYREF
init(argc, argv, envp);
memset(s, 0, sizeof(s));
fflush(stdout);
read(0, s, 0x110uLL);
sleep(5u);
return 0;
}
2.2. 분석
read 함수를 통해 0x110의 값을 받고 sleep 이후 종료된다.
3. 취약점 확인 및 공격 준비
3.1. 취약점
buffer overflow
3.2. 공격 준비
overflow가 발생하는 것은 자명하나, 출력 함수가 없어서 leak이 불가능하다.
libc_start_main_ret에 브루트포싱해도 되긴 하겠지만,
sleep(5)와 더불어 서버 접속 딜레이가 꽤나 크기에 현실적이지 못하다.
그러므로 결국 leak을 해야하는데, file structure를 조작해서 조졌다.
overflow 크기도 그리 크지 않아 여러번 나눠서 페이로드를 작성해야하는게 좀 귀찮았다.
file structure를 통한 leak은 알고 있었으나, 실제로 해본건 처음이라 배울점이 있었던 두번째 문제이다.
728x90
반응형
'Wargame > H4C' 카테고리의 다른 글
H4C - pwnable writeup (ALL) (0) | 2023.07.01 |
---|---|
System Hacking - mini phone (0) | 2023.07.01 |
System Hacking - syscall (0) | 2023.07.01 |
System Hacking - Simple_VM (0) | 2023.07.01 |
System Hacking - Notepad (0) | 2023.07.01 |