해당 게시글은 bandit wargame에 대한 스포일러(방향성/힌트/정답)를 제공할 수 있습니다.

bandit level 2에서 비밀번호를 얻기 위해
명령어의 옵션을 표현하는 -를 파일명으로 인식하게 만들어야 합니다.

로그인해서 ls 명령어를 입력하면 - 라는 이름의 파일이 있습니다.
-는 터미널에서 명령어의 옵션을 입력하기 위한 기호와 같기 때문에
파일을 읽으려면 옵션이 아니라 데이터라고 명시해주어야합니다.

만약 그냥 -를 입력하여 읽으려고 하면
어떤 말을 입력하든 표준 입력(stdin)으로 받아들여 표준 출력(stdout)으로 내보내는 상태가 계속됩니다.
해당 상태에서는 사용자의 입력이 명령어로 입력되지 않으므로 Ctrl + c 키를 눌러서 나와줍니다.
-를 읽는 방법은 2가지가 있습니다.
방법 1. 현재 파일의 경로 명시

cat ./- # 현재 위치(.)의 파일(-)을 읽어라.
방법 2. 쉘(shell)의 리다이렉션 기능 이용

cat < - # 쉘(shell)이 -를 열어서 cat의 인자(stdin)로 연결
추가로, 파일명이 -가 아니라 -로 시작되는 파일(예 : -file)이라면 아래와 같이 우회하는 방법도 있습니다.
cat -- -file # 옵션은 없고(--뒤에 아무것도 없기 때문), -file을 읽어라
다만, bandit의 경우에는 파일명이 -이므로 표준입력을 가르키는 명령어로 먼저 입력됩니다.
방법 1이나 2로 우회하여 비밀번호를 알아내시면 됩니다.
'Bandit' 카테고리의 다른 글
| Bandit Level 4 -> Level 5 (wildcard?) (0) | 2026.01.11 |
|---|---|
| Bandit Level 3 -> Level 4 (command : cd) (0) | 2026.01.10 |
| Bandit Level 2 -> Level 3 (0) | 2026.01.10 |
| Bandit Level 0 -> Level 1 (command : ls, cat) (0) | 2026.01.09 |
| Bandit Level 0 (0) | 2026.01.07 |