hint
여기서는 gets 함수로 사용자 입력을 받는다.
gets 또한 입력값 길이를 검사하지 않는다는 취약점이 있다.
그럼 level11과는 printf에 %s가 추가되었다는 점, gets함수를 사용한다는 점만 다르다.
11번과 동일하게 풀면 된다.
다만, 다른 점은 여기서는 gets로 실행파일을 실행시키면 사용자 입력을 기다리므로
(python -c ~~; cat) | ./attackme 와 같이 실행해야 한다.
왼쪽 python 명령어의 결과로 쉘을 얻었지만, 더 이상 입력이 없어서 쉘이 실행되자마자 종료된 것이다.
이걸 해결하려면 파이프( | ) 앞의 프로그램이 끝나지 않고 입력을 기다려야 한다.
'워게임 > FTZ' 카테고리의 다른 글
FTZ - level15 (0) | 2021.07.24 |
---|---|
FTZ - level14 (0) | 2021.07.23 |
FTZ - level11 (0) | 2021.07.21 |
FTZ - level10 (1) | 2021.07.12 |
FTZ - level9 (0) | 2021.07.06 |
댓글