본문 바로가기
System_Security(실습)/Leviathan

03. leviathan 2 -> 3

by Jnamelight 2017. 8. 18.

leviathan 2 -> 3




일단 printfile 이라는 실행파일이 보인다. 


역시 권한은 다음레벨 권한을 가지고 있다.



저권한을 이용해서 setuid 를 탈취해서 다음레벨의 비밀번호를 알아야한다.


그럼일단 실행파일이 어떤식으로 작동하는지 알기위해서


실행을 해보았더니


아규먼트로 파일이름을 쓰라고한다.



그래서 파일을 하나 만들어서 첫번째 인자로 넘겨주었더니


실행이 되었다!



그래서 혹시나 하는 마음에 바로 비밀번호를 알아내기 위해서


비밀번호 경로를 입력했더니.. 역시나 실패


그래서 자세히 알아보기 위해서..



ltrace 로 분석을 해보았다 ( 사용되는 라이브러리 확인)


확인결과 access 라는 함수를 통해서 권한, 실행가능 한지를 체크!



그럼 저것을 우회해야되는것이 이번 문제!




일단 가장 기초적으로 인자를 두개를 넘기면 어떤식으로 실행되는지


확인해보니  일단 실행이 된다


즉 첫번째 인자만을 확인하는것으로 실행을 시켜준다!



오호라.. 그럼


두번째 인자를 통해서 내가 원하는 경로의 파일을 실행시켜주면 되는대...




일단 링크를 통해서 asdf 를 위와같이 비밀번호의 경로와 링크를 시켜주고



"test.txt asdf" 의 이름의 파일을 하나 만든뒤...


넘겨주었더니 두개의  파일을 실행시켜주면서 클리어!


leviathan 3 : Ahdiemoo1j




여기서 중요한점!!!


리눅스의 이해도이다.


리눅스에서 " (따옴표) " 안의 스트링은 그자체로 사용한다라는 뜻을 지니고 있다.


그래서 띄어쓰기 역시 스트링으로 쓰겠다! 라고 받아들여져서 만들어졌다.


나중에 메모리를 참조할떄 우회기법으로 종종 사용되기 때문에! 꼭 알아두자.



'System_Security(실습) > Leviathan' 카테고리의 다른 글

06. leviathan 5 -> 6  (0) 2017.08.20
05. leviathan 4 -> 5  (0) 2017.08.20
04. leviathan 3 -> 4  (0) 2017.08.20
02. leviathan 1 -> 2  (0) 2017.08.09
01. leviathan 0 -> 1  (0) 2017.08.09

댓글