본문 바로가기

Bandit

Bandit Level 32 → Level 33 (all-clear)

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

 

 

bandit level 에서 비밀번호를 얻기 위해

이전(more - vi - bash)과 다른 방식의 shell escape를 해야 합니다. 

 

알파벳 명령어는 전부 대문자로 치환되어 Permission denied라는 error message를 출력하고,

알파벳으로 이루어지지 않은 입력값은 systax error라는 error message를 출력합니다. 

 

$0은 현재 실행 중인 쉘의 이름 또는 스크립트 파일의 경로를 저장하는 읽기 전용 위치 매개 변수이며, 쉘이 실행될 때 할당됩니다.  UPPERCLASS SHELL이 interactive shell로서 구동하고 있어도 $0은 대문자로 해석되지 않고 shell interpreter가 sh 명령어로 인식합니다.

$0가 입력되면 Parent process(UPPERCLASS SHELL)는 Child process를 생성하고 Child process의 Interactive shell을 sh로 설정하여 Child process에 의해 실행되는 Interactive shell은 sh로 바뀝니다.
Interactive shell이 Child process로 바뀌었음에도 권한은 Parent process에게 bandit33을 상속받으므로 EUID가 bandit33가 되어 /etc/bandit_pass/bandit33에 접근할 수 있게 됩니다. 


 

bandit level 33에서는 더이상 획득할 비밀번호가 없으며, 제작자들의 축하 메세지가 출력됩니다. 

'Bandit' 카테고리의 다른 글

Bandit Level 31 → Level 32  (0) 2026.01.19
Bandit Level 30 → Level 31  (0) 2026.01.19
Bandit Level 29 -> Level 30  (0) 2026.01.19
Bandit Level 28 -> Level 29  (0) 2026.01.19
Bandit Level 27 -> Level 28  (0) 2026.01.19