📖 1) 문제 파악
ssh로 pwnable.kr에 접속해보자.
이렇게 문제파일의 소스코드를 제공해준다.
/bin/cat flag 를 실행시켜보도록 하자.
📖 2) 문제 분석
결국 우리가 생각해야 하는 것은, 어떻게 buf에 LETMEWIN\n을 넘겨줄 것이냐 이다.
먼저 한 줄 위를 본다면 read(fd, buf, 32)가 존재한다.
read함수의 경우 첫 번째 인자로 int fd;를 받게 된다.
- fd = 0 : 표준 입력 (STDIN_FILENO)
- fd = 1 : 표준 출력 (STDOUT_FILENO)
- fd = 2 : 표준 에러 (STDERR_FILENO)
이다. 즉, buf에 값을 받게 만들 것이라면 fd자리에 0을 넣어주어야 한다.
하지만 그 위에서 fd를 보게 된다면 프로그램을 실행할 때 두 번째 인자를 정수로 변환하고 0x1234를 빼준다.
이 fd를 0으로 맞추고 싶다면 우리는 4660 (0x1234)을 넣어주어야 한다.
즉 ./fd 4660을 해주면 된다. 그러면 값 입력을 기다릴 것이다.
📖 3) 문제 풀이
문제를 풀었다.
'스터디 그룹 > ProjectH4C' 카테고리의 다른 글
ProjectH4C 3개월 3주차 과제 (pwnable.kr - flag) (0) | 2021.04.05 |
---|---|
ProjectH4C 3개월 3주차 과제 (pwnable.kr - bof) (0) | 2021.03.31 |
ProjectH4C 3개월 2주차 과제 (UNIT 51, 52, 53) (0) | 2021.03.28 |
ProjectH4C 3개월 2주차 과제 (해커스쿨 ftz - 8) (0) | 2021.03.28 |
ProjectH4C 3개월 2주차 과제 (해커스쿨 ftz - 7) - 스킵 (0) | 2021.03.28 |