Computer Security

#1 Pwnable.kr : fd 문제 풀이 본문

Wargame:Pwnable.kr

#1 Pwnable.kr : fd 문제 풀이

쿠리 Kuri 2022. 7. 31. 18:30
반응형

 

fd


알아야 할 기본지식!

 

argc(argument count) - 인자의 개수
argv(argument vecotr) - 인자의 벡터 즉 문자열의 배열이므로 백터의 테이블 형태

 

파일 디스크립터란? 

  • 시스템으로부터 할당받은 파일을 대표하는 0이 아닌 정수의 값이다.
  • 프로세스에서 실행되는 파일들의 목록을 관리해주는 테이블의 인덱스 값이다.
  • 리눅스/유닉스는 모든 장치를 파일로 관리하는데, 일반 파일과 내부/외부 모든 장치도 파일로 취급한다.
  • 이 파일을 관리하는 것이 파일 디스크립터라고 부른다.

 

atoi(ascii to int) 함수

  • atoi 함수는 10진 정수 문자열을 정수로 변환하는 함수다.

 

read 함수

  • read함수는 open() 함수로 열기를 한 파일의 내용을 읽는 것이다.  
  • 형태는 ssize_t read (int fd , void *buf , size_t nbytes)
    인자는 int fd void *buf size_t nbytes다.

 

strcmp 함수? 

  • strcmp 함수는 매개변수로 들어온 두 개의 문자열을 비교하여 문자열이 같다면 0을 반환하고 
    다르면 1 을 반환 
    같으면 0을 반환하는 함수다. 

 


1. ls -al 을 이용해 무엇이 들어있는지 확인 해본다.

fd@pwnable:~$ ls -al
total 40
drwxr-x---   5 root   fd   4096 Oct 26  2016 .
drwxr-xr-x 116 root   root 4096 Nov 11  2021 ..
d---------   2 root   root 4096 Jun 12  2014 .bash_history
-r-sr-x---   1 fd_pwn fd   7322 Jun 11  2014 fd
-rw-r--r--   1 root   root  418 Jun 11  2014 fd.c
-r--r-----   1 fd_pwn root   50 Jun 11  2014 flag
-rw-------   1 root   root  128 Oct 26  2016 .gdb_history
dr-xr-xr-x   2 root   root 4096 Dec 19  2016 .irssi
drwxr-xr-x   2 root   root 4096 Oct 23  2016 .pwntools-cache

 

 

 

2. fd.c 랑 fd 가있는데, fd.c 파일안에 무슨 내용이 있는지 확인 해보자.

vi fd.c

뭐 파일 내용보니, 받은 값이랑  0x1234 값이랑 뺏을때, 0이 나오면 그다음으로 가는듯 하다.

0x1234는 10진수로 변환하면 4660 이 나온다.

그 뒤에, 만약, LETMEWIN 이 입력되면 굿잡 이러면서 flag파일을 보여주는 것 같다.

 

 

 

4. ./fd 4660입력한뒤,  LETMEWIN을 입력해서 정말 그렇게 동작하는지 확인 해보자.

./fd

 

 

 

5.  mommy! I think I know what a file descriptor is!! 이 문구가 정답인듯 하다. 맞는지 확인해보자!

mommy! I think I know what a file descriptor is!!

 

반응형
Comments