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

bandit level 19에서 다음 레벨에 로그인하기 위해 Setuid binary를 이용하여 /etc/bandit_pass/bandit20 파일을 읽어서 비밀번호를 취득해야합니다.

./bandit20-do cat /etc/bandit_pass/bandit20
인자 없이 실행 시, 다른 사용자의 권한으로 명령을 실행시킨다는 설명이 출력됩니다.
ls -l 실행 시,
-rwsr-x---라는 권한비트에서 소유자 실행 권한에 x대신 s가 표시되어있으므로 이 바이너리는 SetUID file이며,
bandit19의 권한으로 읽기와 실행이 가능합니다.
bandit19의 권한으로 bandit20-do 바이너리를 실행 시,
실제 사용자(Real UID)는 여전히 bandit19이지만 유효 사용자(Effective UID)가 bandit20으로 격상되기 때문에
해당 프로그램을 통해 실행되는 cat은 소유자인 bandit20의 권한을 상속받아 /etc/bandit_pass/bandit20 파일을 읽어오게 됩니다.
'Bandit' 카테고리의 다른 글
| Bandit Level 21 -> Level 22 (0) | 2026.01.13 |
|---|---|
| Bandit Level 20 -> Level 21 (ptrace?) (0) | 2026.01.13 |
| Bandit Level 18 -> Level 19 (0) | 2026.01.13 |
| Bandit Level 17 -> Level 18 (0) | 2026.01.12 |
| Bandit Level 16 -> Level 17 (0) | 2026.01.12 |