반응형

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 명령어를 입력하였더니, 아래와 같이 문제가 해결되었습니다. 

반응형
반응형

exploit-exercises 문제풀이 / Nebula Level05

 

/home/flag05 홈 디텍토리에서 권한이 약한 디렉토리를 찾는 문제입니다. 

ID/PW는 level05 / level05를 가지고 로그인합니다. 

 

/home/flag05 디렉토리로 가서 ls -al 명령어를 입력합니다. 

.backup 디렉토리가 있는데, 권한이 rwxr-xr-x 이기 때문에 접근이 가능합니다. 

이 디텍로리로 들어갑니다. 

.backup 디렉토리에는 tgz 압축파일이 있습니다. 

이 파일의 압축을 풀려고 할때, /home/flag05 디렉토리에서는 권한이 없어, 이 파일을 /home/level05 디렉토리로 복사하고 압축을 풉니다. 

압축을 풀어보면 .ssh/ 디렉토리에 3개의 ssh 관련 파일이 생성됩니다. 

 

ssh -i 명령어를 이용해 전달인자로 id_rsa 파일을 넣고, flag05 계정에 접속합니다.

그럼 아래와 같이 flag05 계정으로 접속됩니다. 

이때 getflag 명령어를 입력하면 이 문제가 해결됩니다.

반응형
반응형

exploit-exercises 문제풀이 / Nebula Level04

 

이번 문제는 token 파일을 읽어야 된다고 합니다. 

하지만, 그 코드는 읽을 수 있는 파일을 제한한다고 합니다.

우회하는 방법 찾아야 합니다. 

이 레벨을 수행하려면 비밀번호 level04를 사용하여 level04 계정으로 로그인합니다. 

이 레벨의 파일은 /home/flag04에서 찾을 수 있습니다.

 

코드는 아래와 같습니다. 

 

먼저 전달인자의 수를 점검합니다. 

그리고 두번째 전달인자에 token이라는 문자열이 있는 경우 프로그램을 종료시킵니다. 

그 두번째 전달인자에 대한 파일의 크기를 제한하고 있습니다. 

파일의 크기를 제한하는 것을 우회해야 됩니다. 

/home/flag04 디렉토리에 가보면 flag04라는 실행파일이 있고, token 파일이 있습니다. 

전달인자로 token을 넣어 flag04를 실행해보면 token에 접근할 수 없다고 합니다.  

이 token 파일의 이름을 변경하는 것이 안되기 때문에, 

이 token 파일을 가르키는 심볼릭 링크 파일을 만들도록 하겠습니다. 

이 심볼릭 링크 파일을 flag04 실행파일의 전달인자로 넣어보겠습니다. 

파일이 읽어 졌고, 파일 안에는 flag04의 암호가 출력됩니다. 

 

flag04 계정으로 접속하여, getflag로 이 문제가 해결된 것을 볼 수 있습니다.

반응형
반응형

exploit-exercises 문제풀이 / Nebula Level03

 

ID/PW : level03 / level03

문제 : flag03 권한으로 getflag 실행을 시켜야 합니다.

 

/home/flag03에 들어가 보면 writable.d 디렉토리랑 writable.sh 파일이 있습니다. 

writable.sh 내용을 보면 /home/flag03/writable.d/ 디렉토리에 있는 스크립트 파일을 bash -x로 실행시킵니다.

/home/flag03/writable.d/ 디렉토리에 test.sh 파일을 만들어 실행하도록 하였습니다. 

test.sh 파일 안에는 getflag를 실행하도록 하였고, 그에 대한 결과는 /tmp/test.txt에 출력하도록 하였습니다.

이제 writable.sh를 실행해보겠습니다.

그럼 /tmp/test.txt 파일이 생겼고, 이 파일을 보면 getflag를 실행한 것으로 볼 수 있습니다.

반응형

+ Recent posts