CTF 스터디
[pwnable.kr] 1번_fd 풀이
dalgorithm
2021. 3. 15. 19:58
728x90
포너블 1번_fd 문제 풀이
먼저 맨 아래 ssh gd@pwnable.kr -p2222를 통해 접속해야하는 것 같다.
비밀번호는 guest를 입력해주었다.
처음에 여기서 더 어떤걸 해야하는지 모르겠어서 어떤 파일이 있는지
확인해보려고 ls 명령어를 입력했다. fd, fd.c, flag 파일 총 3개가 있었다.
fd.c와 flag의 경우 root 권한이기 때문에 확인할 수 fd를 실행해보았다.
""pass argv[1] a number"이라는 문구가 떴다. 숫자를 함께 입력해야 하는 것 같다.
fd.c는 권한이 거부되어서 cat으로 내용을 확인해보았다.
fd = atoi(argv[1]) - 0x1234 부분이 중요해보인다. fd 값이 read함수에서
fd가 0이면 표준입력, 1이면 표준 출력, 2이면 표준에러 출력을 나타낸다.
그 후, strcmp함수로 "LETMEWIN"과 버퍼 값을 비교해 같으면 flag를 출력해준다.
argc는 2 이상이어야하고,
따라서 argv[1] = 0x1234 가 되면 0이 되어서 표준입력이 된다.
0x1234를 10진수로 바꾸면 4660이다.
그리고 strcmp에서 같아야하므로 LETMEWIN을 입력해준다.
그러면 아래에 flag 값이 나오는 걸 확인할 수 있다.
728x90