보안/시스템

Pwnable.kr 1번문제 fd

박오이님 2017. 7. 26. 22:08



Pwnable.kr 1번 문제 fd


Toddler's Bottle
Toddler는 걸음마를 배우는 아이란다

아마 난이도를 의미하는것같다


먼저 준비물이 있다.
리눅스 계열의 운영체제 및 putty 가 필요하다
나는 우분투를 쓸 예정이며 리눅스계열의 운영체제가 있다면 putty는 그닥 없어도 된다.



리눅스계열이라면 그냥 저대로 치면 된다 당연히 pw 부분을 제외하고

Putty를 사용한다면 fd@pwnable.kr Ip칸에 입력해주고, 포트번호를 22번에서 2222번으로 변경해주고 하면된다.


접속이 완료된 후 ls 를 입력하면 파일목록이 뜬다


당연히 flag가 답인 것 같은데

flag를 쉽게 보여줄리 없음

vi fd.c 소스부터 보면



대충 argument 가 2개 미만이면 종료 시키는 소스부터

argument를 입력받아서 숫자로 변환시킨 후, -0x1234를 해준다

그리고 여기서 read()라는 함수를 쓴다.

read(int fd,void * buf,size_t nbytes)
int fd : 파일 디스크립터

void * buf : 파일을 읽은 내용을 저장할 변수

size_t nbytes : 파일을 읽을데이터의 크기 를 의미한다.

파일 디스크립터의 설명을 하자면
0은 표준 입력

1은 표준 출력

2는 표준 에러

이정도가 큰 힌트이다. 
이 정도면 풀 수 있을것이다.