본문 바로가기
Linux/bandit

Level 32 → Level 33

by ㅇㅅㅇ.. 2024. 1. 18.

 

  • login PW: rmCBvG56y58BXzv98yZGdO7ATVL5dW8y
  • 문제설명: X

 

저번 단계에서 얻은 PW로 login을 진행하면 WELCOM TO THE UPPERCASE SHELL 이라는 문구와 함께

이전 단계들과는 다르게 새로운 shell이 등장합니다. 명령어를 입력해보겠습니다.

 

 

>> id

>> ls

>> pwd

 

명령어를 실행하니 정상적으로 작동하지 않습니다.

출력되는 문장을 보니 입력한 명령어가 소문자가 아닌 대문자로 바뀌어 실행되고 있는 것 같습니다.

영어가 아닌 다른 값을 입력하면 해결할 수 있을 것 같습니다.

 

 

이전에 특수변수가 무엇인지 알아보겠습니다.


특수 변수

$0 -> 쉘 스크립트나 쉘에서 실행 중인 명령어의 이름

$1 -> 첫번째 매개변수

$2 -> 두번째 매개변수


 

test.sh 이라는파일을 하나 만들고 

 

 

다음과 같이 저장하겠습니다.

 

파일이 있는 경로로 이동한 다음 실행권한을 주겠습니다.

 

 

파일명 뒤에 first와 second를 입력하고 실행하면 다음과 같이 출력됩니다.

 

$0 ->  실행하는 파일명인 ./test.sh

$1 ->  첫번째 매개변수인 'first'

$2 -> 두번쨰 매개변수인 'second' 가 출력되는 것입니다.

 

 

파일을 불러와 실행하는 것 뿐만 아니라 다음과 같이 사용할 수도 있습니다.

 

터미널 환경에서 zsh이 실행되고 있으므로 $0의 결과로 zsh의 경로가 나옵니다.

 

 

다시 bandit32에 로그인을해서 쉘에 $0을 입력하면 또 다른 쉘이 실행되는 것을 확인할 수 있습니다.

 

이는 bandit32의 PW를 누르고 로그인을 할 때 실행되던 프로그램의 첫번째 명령어가 실행된 것 입니다.

( $0을 입력한 것과 /bin/sh을 입력한 것과 동일하다고 생각하면 됩니다. )

 

 

# cat /etc/bandit_pass/bandit33

bandit33를 찾을 수 있습니다.

 

 

 

 

 


 

이렇게 해서 현재 나와있는 OverTheWire Bandit 문제를 모두 다 풀어보았습니다.

 


 

'Linux > bandit' 카테고리의 다른 글

Level 31 → Level 32  (0) 2024.01.18
Level 30 → Level 31  (0) 2024.01.16
Level 29 → Level 30  (0) 2024.01.16
Level 28 → Level 29  (0) 2024.01.16
Level 27 → Level 28  (0) 2024.01.16