반응형

해커스쿨 ftz 문제풀이 / level7

 

 

 

/bin/level7은 setuid가 걸려져 있습니다. 

/bin/level7을 실행시키면 패스워드 입력하는 부분이 나오고, 1234를 입력하면 아래와 같은 문구가 출력됩니다. 

하지만 /bin/wrong.txt 파일이 없다고 합니다. 

이 문제를 해결하기 위해 아래 링크를 확인하여, /bin/wrong.txt를 만들어 줍니다.

blog.naver.com/PostView.nhn?blogId=ilikebigmac&logNo=221491317713

 

해커스쿨 ftz level7 wrong.txt 오류 해결 방법

level7 을 풀다보면 wrong.txt 라는 파일이 없다는 에러메세지가 출력된다.​이는 가상머신상에 환경을 구...

blog.naver.com

위 링크대로 하였다면, 아래와 같이 이상한 내용이 출력됩니다. 

- 기호를 1로 바꾸고, _ 기호를 0으로 바꾸어 봅니다. 

1101101 1100001 1110100 1100101 이 되고, 이 2진수를 10진수로 변경하면 109, 97, 116, 145, 101가 나오고, 이 10진수를 ASCII code로 변경하면 m a t e가 됩니다. 

 

/bin/level7 실행 시 패스워드를 mate로 입력하면 다음 레벨의 패스워드가 출력됩니다.

 

 

반응형
반응형

해커스쿨 ftz 문제풀이 / level6

level6로 로그인하면 바로 hint가 출력됩니다. 

인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹 방법이라고 합니다.

 

엔터를 입력하면 아래와 같이 화면이 나옵니다. 

1,2,3을 모두 입력해도 접속은 안되고 프로그램이 종료됩니다. 

 

이 화면에서 Ctrl + C 키를 입력하면 level6 권한으로 bash가 실행됩니다. 

hint가 보여지는 화면에서 입력을 기다리고 있다가 엔터를 누르면 텔넷 접속 서비스 순으로 출력되는 것을 생각할 수 있습니다. (hint 출력 -> 키 입력 대기 -> 키 입력 -> 텔넷 서비스 출력) 

텔넷 서비스가 출력되었을 때에는 Ctrl + C를 하면 ssh를 종료하도록 해 놓은 듯 합니다. 

level6 홈 디렉토리에 password가 있고, 이 파일의 내용을 보면 level7의 패스워드를 확인할 수 있습니다.

반응형
반응형

해커스쿨 ftz 문제풀이 / level5

 

level6의 권한을 얻는 문제입니다. 

 

/usr/bin/level5 프로그램은 level6에 setuid가 설정되어 있습니다.  

이 프로그램을 실행시키면 /tmp 디렉토리에 level5.tmp를 생성한다고 합니다. 

하지만, /tmp/에 가보면 level5.tmp 라는 파일은 찾을 수 없습니다. 

 

이는 /tmp/level5.tmp를 생성하고 바로 지우는 것을 유추할 수 있습니다. 

이 파일을 지우는 것은 /tmp/level5.tmp 파일이 level6 권한으로 만들어 졌기 때문입니다. 

그러면 /tmp/level5.tmp 파일을 level5의 권한으로 만들면, /usr/bin/level5 프로그램 실행시켜도 해당 파일이 삭제되지 않을 것입니다. 

 

level5.tmp를 level5의 권한으로 생성합니다. 

파일 내용 없이 만드니깐 크기는 0이 됩니다. 

 

그리고 나서 /usr/bin/level5를 실행시킵니다. 

그러면 /tmp/level5.tmp 파일 내용을 업데이트 하였지만, 이 파일에 대한 소유자는 level5이기 때문에 삭제하지는 못하게 되어 파일이 그대로 남아 있습니다. 파일 크기를 보면 약간 증가한 것을 볼 수 있습니다. 

이 파일의 내용을 보면 다음 레벨의 패스워드가 있는 것을 볼 수 있습니다.

반응형
반응형

exploit-exercises 문제풀이 / Nebula Level07 - perl

 

flag07 사용자는 웹 서버에서 접근 할 수 있는지 확인하기 위해,

호스트를 ping 할 수있는 첫 번째 perl 프로그램을 작성했다고 합니다. 

 

login은 ID/PW를 level07/level07로 하고, 이 레벨을 위한 파일은 /home/flag07에 있다고 합니다. 

 

문제로 나온 index.cgi 코드입니다. 

Host에 $host 입력을 위한 localhost 주소(127.0.0.1)를 입력해 보도록 하겠습니다. 

./index.cgi 파일에 Host 전달인자를 넣어 실행하면, 전달인자로 넣은 주소로 ping이 가게 됩니다. 

웹 서버에 대한 설정이 들어 있는 thttpd.conf 파일을 보겠습니다. 

port는 7007이고, 웹 서버의 디렉토리를 /home/flag07로 설정되어 있습니다. 

웹으로 포트는 7007이고, /home/flag07 디렉토리에 있는 파일을 실행시킬 수 있습니다. 

또한 그 파일을 실행시킬 때, flag07의 권한으로 실행시킬 수 있습니다. 

웹으로 접근하기 위해 ip를 확인하여 접근하도록 하겠습니다. 

index.cgi 파일에 Host를 ping 하는 것이 flag07 권한으로 실행되었습니다. 

그러면 이 주소에 getflag 명령어를 넣어 flag07 권한으로 getflag가 실행되도록 하겠습니다. 

세미콜론을 의미하는 %3B를 넣고, getflag 명령어를 입력하였더니, 아래와 같이 문제가 해결되었습니다. 

반응형

+ Recent posts