Psalm

Level 18 본문

Wargame/Nebula

Level 18

hkhkhkh 2024. 8. 17. 01:13
반응형

반복적으로 입력을 받아 해당 문자열에 대한 함수를 실행한다.

 

shell을 입력하면 globalsl.loggedin이 설정되어 있으면 /bin/sh가 실행된다.

 

 

globals.loggedin은 login함수에서 실행이되는데, 파일 열기에 실패하면 이 값이 설정된다.

 

 

현재 쉘 세션에서서 최대로 열수있는 파일의 개수가 1024로 설정되어 있다.

 

이점을 이용해서 쉘을 획득할거다.

 

 1024가 넘어가면 파일 열기에 실패하고, login함수에서 globals.loggedin이 설정되는데, 이 점을 공략할 것이다.

 

위와같이 login문자열을 1021번 입력하고(stdin, stdout, stderr 파일 디스크립터가 있기때문), closelog, shell을 차례대로 입력한 파일을 만들어준다.



그리고 출력인자를 flag18바이너리의 실행인자로 넘겨주면 login함수에서 시스템 자원이 고갈되면서 loggedin 변수가 1로 설정된다. 그리고 shell이 실행이된다. 하지만 -d옵션은 없는 옵션으로 나오고, 여기서 –init-file로 옵션을 주고 실행하면 shell이 획득된다.

–init-file뿐 아니라 쉘을 실행하는 어떤 옵션도 사용가능(예: –rcfile)

이런 공격은 DOS로 이어질 수 있다.

반응형

'Wargame > Nebula' 카테고리의 다른 글

Level 19  (0) 2024.08.19
Level 11  (0) 2024.08.16
Level 17  (0) 2024.07.28
Level 16  (0) 2024.07.28
Level 15  (0) 2024.07.28
Comments