본문 바로가기

PWNABLE/pwnable.kr

[pwnable.kr] FD

pwnable.kr fd풀이

2016.08.31.

vi fd.c


atoi()()안의 문자열에서 정수만 받는건데 예를들어 atoi(2007)이면 2007, atoi(2007start)이면 2007이지만 atoi(start2007)이면 0이다. 문자열에 정수까지만 받는 함수라고 이해하면 될 거 같다.

read(fd,buf,32)fd 즉 파일디스트립트 값을 읽어서 32byte만큼 읽어 buf에 데이터를 저장한다는 건데 bufLETMEWIN을 비교해서 맞아야한다.

 

우선 0x1234를 십진수로 바꾸면 4660이 나온다. 그래서 일단은 그냥 생각나는대로 페이로드를 작성해서 때려봤는데


이렇게 하는 건 아닌가 싶어서 우선 fd에 대한 정확한 개념이 없어 찾아보았다.

fd0,1,2로 반환하는데 0stdin(표준 입력), 1stdout(표준 출력), 2stderr(표준 에러)이다. 따라서 fd0으로 만들어 입력을 받아 buf에 저장시킬 수 있도록 만들어보자.

 

그리고 무작정 시도한 페이로드에는 ./fd`python c’print“4660”’`으로 argc의 개수가 2개로 맞춰진다. argc,argv개념 헷갈리지 말자



우선 argv[1]4660을 넣어 표준입력을 받을 수 있도록 만들어주고 LETMEWIN 입력




'PWNABLE > pwnable.kr' 카테고리의 다른 글

[pwnable.kr] PASSCODE  (0) 2016.09.27
[pwnable.kr] BOF  (0) 2016.09.27