관리 메뉴

IT창고

[Leviathan] Level 2 -> Level 3 본문

WarGame/Leviathan

[Leviathan] Level 2 -> Level 3

방구석여포 2018. 2. 4. 21:56

Leviathan Level 2 문제입니다.



printfile프로그램이 있습니다. 이번에도 SETUID가 걸려있네요. ltrace명령어를 사용해봤지만 저번처럼 쉽게 되지는 않네요.

디버거로 확인해보겠습니다.


이글을 쓰고 있는 지금은 결국 풀었지만 이 문제를 해결하려던 때에는 정말 고생했습니다.

먼저 바이너리를 분석하며 인자갯수를 확인하는점 access함수를 사용하는점 리턴값이 0이면 프로그램이 종료되는 사실을 알아내었습니다. 아래에 geteuid가 있는걸 보면 이번에도 권한 상승 기법을 사용해야하는걸 알수있었습니다. 


인자만 넣는다고 해결되지는 않았습니다.

인자를 비교해야하는 프로그램이고 이걸 어떻게 해야할지 고민하며 힌트를 받았습니다. " 과 link 였었는데 듣고 심볼릭 링크파일을 만들어 봐야겠다고 생각했습니다.


먼저 tmp디렉토리에 가서 touch명령어로 test1파일하나 만들어보았습니다. ls명령어가 사용되지않아서 링크사용을 헷깔렸네요...

/가 들어간 파일을 만들수없기에 tmp디렉토리에서 실행해보았는데 ls명령어가 사용되지않아서 파일이 보이지 않기에 tmp디렉토리에 폴더하나를 만들고 거기에 링크파일을 만들었습니다.


새로만든 디렉토리에서 파일의 상태를 확인해보았습니다. 링크파일하나를 만들었고 여기서 " 힌트를 사용해서 test1 test2로 글사이가 띄워진 파일을 만들었습니다. 이걸 printfile에 인자를 주니 패스워드가 보이네요 정말 힘들었습니다...



'WarGame > Leviathan' 카테고리의 다른 글

[Leviathan] Level 5 -> Level 6  (0) 2018.02.04
[Leviathan] Level 4 -> Level 5  (0) 2018.02.04
[Leviathan] Level 3 -> Level 4  (0) 2018.02.04
[Leviathan] Level 1 -> Level 2  (0) 2018.02.04
[Leviathan] Level 0 -> Level 1  (2) 2018.02.04
Comments