본문 바로가기

Bandit

Bandit Level 19 -> Level 20 (EUID vs RUID?)

해당 게시글은 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