Level 10 문제이다.

 

 

로그인 후 문제를 보면, level 9 와 비슷한 유형이지만 필터링이 되어 있다.

 

 

 

소스 코드를 확인해보면, preg_match 함수를 사용하여 ; | & 문자 사용 시 필터링 처리 되고 있다.

그럼 이 외의 문자를 입력하여 우회가 된다면, 다음 레벨의 패스워들 획득할 수 있다.

 

구글링 결과 개행문자를 통해서도 OS Command Injection이 가능하다..!

 

 

?needle=apple%0acat%20/etc/natas_webpass/natas11&submit=Search 을 입력해주면, 다음 레벨의 패스워드를 획득할 수 있다. 👏

 

 

'Penetration Testing > Natas' 카테고리의 다른 글

[Natas] Level12 write-up  (0) 2023.09.14
[Natas] Level11 write-up  (0) 2023.09.12
[Natas] Level9 write-up  (0) 2023.09.11
[Natas] Level8 write-up  (0) 2023.09.11
[Natas] Level7 write-up  (0) 2023.09.11

Level 9 문제이다.

 

 

문자열을 입력했을 때 단어를 찾아주는 검색창이 존재한다. 

 

 

임의로 apple 값을 입력하면, get 방식으로 ?needle=apple&submit=Search 로 요청하고 있다.

 

 

감이 잡하지 않아서 힌트를 본 결과, 해당 문제는 OS Command Injection 문제이다.

그렇다면! 💡apple;(명령어) 를 입력해줌으로써 커맨드 명령어 결과를 확인할 수 있다. 

 

 

apple;pwd 입력 시, 현재 경로의 위치가 노출되고 있다. 

 

 

이를 활용하여 레벨 7의 webpass 경로(/etc/nata_webpass/)를 확인할 수 있다.

해당 경로에 접근 가능한지 확인해보자.

 

아래의 사진 처럼 /etc/natas_webpass/에 level9의 다음 패스워드 natas10을 cat 명령어로 확인하자.

 

 

다음 레벨의 패스워드를 획득할 수 있다. 👏

 

 

'Penetration Testing > Natas' 카테고리의 다른 글

[Natas] Level11 write-up  (0) 2023.09.12
[Natas] Level10 write-up  (0) 2023.09.11
[Natas] Level8 write-up  (0) 2023.09.11
[Natas] Level7 write-up  (0) 2023.09.11
[Natas] Level6 write-up  (0) 2023.09.11

Level 8 문제이다.

 

 

로그인 후, 문제를 보면 secret 을 입력하라는 form 이 존재한다.

 

 

소스 코드를 확인해보면 encodeSecret 함수에 $secret 값을 입력하였을 때의 결과를 알 수 있다.

즉, $encodedSecret =  "3d3d516343746d4d6d6c315669563362"encodeSecret 함수의 return 값이다.

 

 

그렇다면 💡bin2hex(strrev(base64_encode($secret))) 함수를 거꾸로 뒤집어서 계산해주면 $secret 값을 획득할 수 있게 된다. 

 

먼저, bin2hex 함수는 ASCII 문자의 문자열을 16진수로 변환한다. 

그렇다면 반대로, hex2bin 함수는 16진수를 ASCII 문자의 문자열로 변환한다. 

 

hex2bin 함수를 사용하여 ASCII 문자열로 변환한 결과 "==QcCtmMml1ViV3b" 값을 얻을 수 있다. 

 

 

다음으로, strrev 함수는 문자열을 거꾸로 뒤집는 함수이다. 

그렇다면 변환된 결과 값을 다시 거꾸로 뒤집어 주면 된다.

 

"b3ViV1lmMmtCcQ==" 값을 얻을 수 있다.

 

마지막으로, base64_encode 함수를 이용해 base64로 인코딩하였으므로 디코딩해주면 된다.

 

"oubWYf2kBq" 값을 얻게 된다. 

 

 

secret 값을 입력하고 제출을 누르면

 

 

다음 레벨의 패스워드를 획득할 수 있다. 👏

 

 

'Penetration Testing > Natas' 카테고리의 다른 글

[Natas] Level10 write-up  (0) 2023.09.11
[Natas] Level9 write-up  (0) 2023.09.11
[Natas] Level7 write-up  (0) 2023.09.11
[Natas] Level6 write-up  (0) 2023.09.11
[Natas] Level5 write-up  (0) 2023.09.11

Level 7 문제이다. 

 

 

로그인 후 문제를 보면, Home, About 버튼이 존재한다.

 

 

Home 버튼을 누르면 this is the front page 문구가 뜨고 page=home 으로 파라미터 값이 변경된다. 

 

 

About 버튼을 누르면 this is the about page 문구가 뜨고 page=about 으로 파라미터 값이 변경된다.

 

 

소스 코드를 보면 webuser의 패스워드가 /etc/natas_webpass/natas8 에 존재한다.

위에서 page 파라미터 값을 변경함으로써 home, about 페이지가 출력되었으므로

💡page=/etc/natas_webpass/natas8 입력 시 패스워드가 노출될 것 같다.

 

 

해당 경로로 접근하면 다음 레벨의 패스워드를 획득할 수 있다. 👏

 

 

'Penetration Testing > Natas' 카테고리의 다른 글

[Natas] Level9 write-up  (0) 2023.09.11
[Natas] Level8 write-up  (0) 2023.09.11
[Natas] Level6 write-up  (0) 2023.09.11
[Natas] Level5 write-up  (0) 2023.09.11
[Natas] Level4 write-up  (0) 2023.09.11

Level 6 문제이다.

 

 

로그인 후, 문제를 확인해보면 secret 키를 입력하는 form 이 존재하고 소스코드를 확인할 수 있다.

 

 

소스 코드를 확인하면 POST 방식으로 전달되는 secret 값에 따라 패스워드 노출 여부를 결정한다.코드 내에 include 부분에서 "includes/secret.inc" 를 확인할 수 있다.php 에서 include 는 외부 다른 파일을 코드 안으로 불러올 수 있는 기능이다. 

 

 

즉, includes 경로에 secret.inc 파일이 존재한다. 해당 경로로 접근해보면 다른 php 파일이 존재하고 secret 값을 확인할 수 있다. 

 

 

해당 값을 form 에 넣어주면 다음 레벨의 패스워드를 획득할 수 있다. 👏

 

 

'Penetration Testing > Natas' 카테고리의 다른 글

[Natas] Level8 write-up  (0) 2023.09.11
[Natas] Level7 write-up  (0) 2023.09.11
[Natas] Level5 write-up  (0) 2023.09.11
[Natas] Level4 write-up  (0) 2023.09.11
[Natas] Level3 write-up  (0) 2023.09.11

+ Recent posts