본문 바로가기

Web Hacking/overthewire_natas

overthewire - Natas(6~10)

Natas6

 

1). 암호를 입력하라고 한다.. 소스코드를 확인하자.

 

 

2). 입력한 secret이 변수 secret과 일치하면 답을 알려준다. includes/secret.inc를 include하고 있다.. 확인해보자

 

2). 해당 include 파일에 다음과같이 secret의 변수가 잘 들어가 있다 .! submit해보자 해결완료!

 

 

 

 


Natas7

 

1). 링크가 2개 있다 한번씩 눌러보자. 해당 페이지로 넘겨주는 작업을 하는 것 같다.

 

 

2). 혹시나 하고 /etc/passwd 를 입력해보자 정보가 다나온다. !

 

 

 

3). Natas에서 password가 어디있는지 처음에 알려줫었다 . 그럼 /etc/natas_webpass/natas8에 natas8의 비밀번호가 있을 것이다.

 

 

 

4). 해결완료

 


Natas8

 

1). 소스코드 확인

 

2). 해당 소스를 분석해보면 encode된 암호문을 주고 암호화 되기전 secret을 구하라는 것이다. 암호문을 복호화 하기위해서 역순을 밟아보자. 즉..    평문 -> base64_encode  -> strrev -> bin2hex -> 암호문   

             암호문 -> hex2bin -> strrev -> base64_decode  -> 평문                 역순으로 실행시켜보자.

 

3).  위의 과정을 php로 실행시켜보자. hex2bin의 경우에는 php5.3에서 가능해서 만들어진 함수를 직접 가져다 사용했다. 다음과 같이 평문의 내용을 확인할 수 있다.

 

4). 해결!

 


Natas9

 

1). 소스코드를 보면 입력값이 needle로 들어가고 해당 needle이 $key에 들어가서 그 결과 값을 Output에 출력된다. 결국 comman injection문제이다. shell에서 여러 명령어를 한번에 실행할 수 있는 방법만 알면 쉽게 풀 수 있다.    ';'를 이용하면 명령어를 여러개 실행  시킬 수있는데 예를들어 ls;pwd를 실행하면 ls와 pwd명령어를 동시에 실행시킨다.

# 따라서 ;cat  /etc/natas_webpass/natas10; 이렇게 입력을하면 grep -i ;cat  /etc/natas_webpass/natas10 ; dictionary.txt 가 commad로 실행되고 첫번째 명령과 세번째 명령은 유효하지 않기 때문에 무효화되고 cat /etc/natas_webpass/natas10의 결과만 다음과 같이 나온다.

 

 

2). 해결!

'Web Hacking > overthewire_natas' 카테고리의 다른 글

overthewire - Natas(0~5)  (0) 2018.03.29