이번 문제도 Level 21과 유사하다. 다만 NOTE 부분이 추가됨. 이번 레벨에서 사용된 쉘 스트립트는 굉장히 읽기 쉽게 짜여졌다고 한다. ok..
일단 /etc/cron.d 폴더에 들어가서 ls -al 명령어를 사용해줬다.
cronjob_bandit~ 파일이 여러개 들어있길래 다음 단계로 가기위한 bandit23 파일을 읽어봤다.
21 레벨에서 봤던 코드와 동일한 내용이 들어있다. (재부팅시, 그리고 매 분 마다 /usr/bin/cron~에 있는 파일의 표준 출력, 에러를 리다이렉트해서 /dev/null로 보냄.
/usr/bin 폴더에 가보자.
ls -al cronjob_* 명령어로 cronjob_으로 시작하는 파일을 찾아봤다. 이것도 21 Level과 동일하게 나온다.
cronjob_bandit23.sh 파일을 읽어보자.
엇! 이번엔 뭔가 코드가 길다..
myname 변수에 $(whoami) , 즉 현재 로그인한 사용자를 입력하고
echo 명령어로 .. myname 변수를 출력해준다.
그리고 마지막엔 cat /etc/bandit_pass/$myname > /tmp/$mytarget으로 넣어줌
그럼 현재 내 아이디는 bandit22이니까 bandit22 비밀번호가 들어가겠지..?
여기서 목표는 딱 하나다. 내 아이디를 bandit23로 만드는 것..!
이 파일을 실행해보면 다음과 같은 내용이 출력된다. 7행에 있는 Echo 명령어가 출력된 것이다.
/tmp/816~ 파일을 읽어보면 예상대로 22 비밀번호가 나온다.
엥.. 근데 아무생각없이 4행에 있던 echo 명령어에 $myname 대신 bandit23을 넣었는데 mytarget 변수의 값이 나왔다...
원래 이렇게 푸는게 맞는건가..?
md5sum은 무결성 확인 명령어, cut -d는 지정한 문자를 구분자로 사용한다는거.. -f는 필드를 기준으로 잘라댄다고 한다. (못알아들음)
ㅠㅠ 풀어도 찝찝한 문제
아니.. 웅아 우리 이거 맞아..? (아련)
'Pwnable > Bandit' 카테고리의 다른 글
[Bandit Level 24->25] 쉘 스크립트 짜서 무작위 공격하기 (0) | 2022.02.04 |
---|---|
[Bandit Level 23->24] cron을 활용하자 (3) (0) | 2022.02.03 |
[Bandit Level 21->22] cron을 활용하자 (0) | 2022.02.01 |
[Bandit Level 19->20, 20-> 21] setuid를 사용하자 (0) | 2022.01.31 |
[Bandit Level 17->18, 18->19] diff 사용하기, ssh? (0) | 2022.01.14 |
댓글