y0u_bat
[Pwnable.kr] fd - 1pt 풀이 본문
[Pwnable.kr] fd - 1pt 풀이
리눅스 파일디스크럽터에 대해 아냐고 물어본다.
파일 디스크럽터에 대한 문제 인가보다.
파일 디스크럽터에 대해 알아야된다.
http://y0ubat.tistory.com/31 - 설명
접속해서 fd.c 를 보았다.
우선 argv[1] 에 입력을 해야되고,
read(fd,buf,32); 에 의해 buf에 32글자까지 입력가능하다.
만약에 buf가 LETMEWIN 이면 flag을 읽고 아니면 file IO에 대해 배우라는 문장이 뜨고 종료한다.
int fd = atoi(argv[1]) -0x1234;
여기서 atoi라는 함수가 나온다.
http://y0ubat.tistory.com/30 - 설명
파일 디스크럽터
0 stdin - 입력
1 stdout - 출력
2 stderr - 에러
우리는 여기서 입력을 해야되니 fd를 0으로 만들어줘야된다.
atoi(argv[1]) - 0x1234 이 fd 이다
0x1234은 4660이다.
fd를 0으로 만들기 위해 argv[1]의 적절한 값을 넣어준다.
fd를 0으로 만들었다면, argv[1]을 넣고 파일을 실행한뒤에 입력 할 수 있을것이다.
아까 if으로 LETMWIN이 buf면 flag가 출력이 된다고 했었다.
LETMEWIN을 입력해보자
입력해보면 플래그가 출력되는것을 알 수 있다.
클리어.
'System > [Pwnable.kr]' 카테고리의 다른 글
[Pwnable.kr] leg - 2pt 풀이 (0) | 2015.07.25 |
---|---|
[Pwnable.kr] random - 1pt 풀이 (0) | 2015.07.24 |
[Pwnable.kr] passcode - 10pt 풀이 (0) | 2015.07.24 |
[Pwnable.kr] bof - 5pt 풀이 (0) | 2015.07.24 |
[Pwnable.kr] collision - 3pt 풀이 (0) | 2015.07.24 |
Comments