System Hacking/인터루드 스터디

[picoCTF:] buffer overflow 0

daaaay 2026. 4. 2. 18:34

문제

 
아래 버튼 클릭

 
좀 기다리면 이렇게 뜬다 

 
아래 버튼 눌러서 문제 다운받기

 
 
아래 2개가 다운된다

 
 
아래 경로에 다운받은 두 파일 넣기

 
잘 넣어졌다

 
아니다. 이경로에 넣어야 한다

 
vuln.c 파일 열어보기

 
wsl 실행 

 
들어가면 입력하는 창이 뜬다

 
hi를 입력해봤다
종료된다

 

소스코드 분석

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>

#define FLAGSIZE_MAX 64

char flag[FLAGSIZE_MAX];

void sigsegv_handler(int sig) {
  printf("%s\n", flag);
  fflush(stdout);
  exit(1);
}

void vuln(char *input){
  char buf2[16];
  strcpy(buf2, input);
}

int main(int argc, char **argv){
  
  FILE *f = fopen("flag.txt","r");
  if (f == NULL) {
    printf("%s %s", "Please create 'flag.txt' in this directory with your",
                    "own debugging flag.\n");
    exit(0);
  }
  
  fgets(flag,FLAGSIZE_MAX,f);
  signal(SIGSEGV, sigsegv_handler); // Set up signal handler
  
  gid_t gid = getegid();
  setresgid(gid, gid, gid);


  printf("Input: ");
  fflush(stdout);
  char buf1[100];
  gets(buf1); 
  vuln(buf1);
  printf("The program will exit now\n");
  return 0;
}

 
 
아래 명령어 실행해보기
 

gdb vuln

 
 
아래 명령어 실행하기

disass vuln

 

pwndbg> disass vuln
Dump of assembler code for function vuln:
   0x00001353 <+0>:     endbr32
   0x00001357 <+4>:     push   ebp
   0x00001358 <+5>:     mov    ebp,esp
   0x0000135a <+7>:     push   ebx
   0x0000135b <+8>:     sub    esp,0x14
   0x0000135e <+11>:    call   0x149b <__x86.get_pc_thunk.ax>
   0x00001363 <+16>:    add    eax,0x2c49
   0x00001368 <+21>:    sub    esp,0x8
   0x0000136b <+24>:    push   DWORD PTR [ebp+0x8]
   0x0000136e <+27>:    lea    edx,[ebp-0x18]
   0x00001371 <+30>:    push   edx
   0x00001372 <+31>:    mov    ebx,eax
   0x00001374 <+33>:    call   0x1170 <strcpy@plt>
   0x00001379 <+38>:    add    esp,0x10
   0x0000137c <+41>:    nop
   0x0000137d <+42>:    mov    ebx,DWORD PTR [ebp-0x4]
   0x00001380 <+45>:    leave
   0x00001381 <+46>:    ret
End of assembler dump.

 
문자를 20자 이상 입력하면 된다. 
 
 
플래그 나왔다

 
 
플래그

picoCTF{ov3rfl0ws_ar3nt_that_bad_ef01832d}

 
 
성공

'System Hacking > 인터루드 스터디' 카테고리의 다른 글

[picoCTF] buffer overflow 2  (0) 2026.04.02
[picoCTF] buffer overflow 1  (0) 2026.04.02
[pwnable.kr] bof  (0) 2026.03.26
[pwnable.kr] fd  (0) 2026.03.26
[워게임] 드림핵 : Welcome  (0) 2026.03.19