pwnable.kr의 첫번째 문제인 fd를 풀어 보겠다.
이 문제를 요약하자면 fd@pwnable.kr -p2222에 ssh로 접속해서 fd.c를 분석하여서 fd에 정확한 값을 넣으면 flag값이 나오는 방식이다.
그러면 먼저 터미널에서 ssh로 문제에 주어진 주소로 접속을 한다.
위아 같이 ssh로 접속해서, 접속이 되면 yes를 치고 password에 guest를 입력하여 로그인 한다.
로그인에 성공하고 "ls" 명령어를 주어서 무슨 파일이 있는지 살펴 봤더니 fd, fd.c, flag파일이 있었다.
fd파일을 실행하니 pass argv[1] a number이라는 문구가 떴고, flag파일을 cat으로 열어보니 Permission denied 오류가 떴다.
마지막으로 fd.c를 cat으로 열어보니 다음과 같은 c코드가 있었다.
여기서 read함수는 fd파일에서 count를 읽어 buf에 저장하는 함수이다.
0은 표준 입력, 1은 표준 출력, 2는 표준에러이다.(예시: ./fd 1234, ./fd 5678)
다시 c코드를 보면 atoi(argv[1]) - 0x1234는 0이여야 LETMEWIN을 입력받아 flag값을 준다.
그렇다고 ./fd 0x1234라고 넣으면 오류가 난다. 그러므로 0x1234를 10진수로 바꿔야 한다.
이렇게 계산기를 이용하면 0x1234는 10진수로 4660인걸 알수있다.
그럼 이제 ./fd 4660을 입력해보자. 그리고 LETMEWIN을 입력해보자.
그러면 good job :) 밑에 flag값이 나온걸 확인할 수 있다.
flag값을 알고 싶으면 밑에 있는 글자를 드래그 하면된다.
flag : mommy! I think I know what a file descriptor is!!
'워게임' 카테고리의 다른 글
HackCTF-1번, 2번, 3번, 4번(Web) Writeup (1) | 2021.01.23 |
---|---|
여러가지 해킹 교육 플랫폼들과 워게임을 포함한 사이트 모음 (0) | 2020.12.30 |
[xcz.kr] Prob1 : End of image 문제풀이 (0) | 2020.11.22 |
[pwnable.kr] 3번 문제 - bof 문제 풀이 (0) | 2020.11.22 |
[pwnable.kr] 2번 문제 - collision 문제풀이 (0) | 2020.11.08 |