뇌
[FTZ] level 1 → level 2 문제풀이 본문
level1 - id : level1 , pw : level1
level1 id로 접속을 했더니(level1 디렉토리) 눈에 띄는 hint파일이 있다.
열어보자.
trainer에서 배운 find 명령어를 사용해야겠다.
우리가 사용해야할 조건은 user가 level2이고, setuid가 걸린 파일이다.
이것을 생각하면서 find 명령어에 어떤 옵션이 있는지, 그리고 그 옵션의 사용법을 찾아보자.
-user 옵션을 이용하여 level2의 조건을 걸자.
-user level2
-perm 옵션을 이용하여 setuid의 조건을 걸자.
setuid의 권한은 숫자모드 4000이다.
-perm -4000
이제 파일을 찾아보면,
.
.
.
find / -user level2 -perm -4000
에서 앞에 있는 / 는 root 디렉토리부터 찾는다는 뜻이다.
/bin/ExecuteMe 파일을 제외하고 모두 Permission denied가 뜬다.
이 파일을 의심해볼만 하다.
실행시켜보자.
level2의 권한으로 한가지 명령어를 실행시켜주는데 우리의 목적인 my-pass 명령어를 사용할 수 없다.
그럼 쉘을 띄우면 된다.
/bin/sh를 이용하여 쉘을 띄워보자.
쉘을 띄우고 my-pass를 입력하면 level2의 비밀번호가 나오게 된다.
Level2 Password is "hacker or cracker".
추가)
끝에 2>/dev/null 을 붙이면,
아까 Permission denied 라고 떴던 파일들은 출력되지 않는다.
2의 뜻은 오류난 파일들을 뜻하고, 1을 입력했다하면 정상적인 파일을 뜻한다.
/dev/null 은 그냥 null이라 아무것도 뜨지 않는다는 뜻이다.
그래서 해석하면 '오류난 파일들을(2) 아무것도 뜨지 않게 해라(/dev/null) !' 가 된다.
그러므로 1>/dev/null을 입력한다면 오류난 파일들만 뜨게될 것이다.
감사합니다
'Pwnable > 해커스쿨 FTZ write-up' 카테고리의 다른 글
[FTZ] level 6 → level 7 문제풀이 (0) | 2020.02.18 |
---|---|
[FTZ] level 5 → level 6 문제풀이 (0) | 2020.02.03 |
[FTZ] level 4 → level 5 문제풀이 (0) | 2020.02.01 |
[FTZ] level 3 → level 4 문제풀이 (0) | 2020.01.31 |
[FTZ] level 2 → level 3 문제풀이 (0) | 2020.01.30 |