본문 바로가기
정보 보안 해킹 공부/모의해킹

[Wargames]missions/basic/9

by 박나무 2022. 1. 8.
반응형

The password is again hidden in an unknown file. However, the script that was previously used to find it has some limitations. Requirements: Knowledge of SSI, unix directory structure.

Basic 9

알 수 없는 파일에서 암호가 다시 숨겨집니다. 다만 기존에 찾던 스크립트에는 몇 가지 제약이 있다.

요구사항: SSI, 유닉스 디렉토리 구조에 대한 지식. ( 이 두가지가 필요한 것 같다.)

 

HackThisSite

HackThisSite.org is a free, safe and legal training ground for hackers to test and expand their ethical hacking skills with challenges, CTFs, and more.

www.hackthissite.org

Level 9

Network Security Sam is going down with the ship - he's determined to keep obscuring the password file, no matter how many times people manage to recover it. This time the file is saved in /var/www/hackthissite.org/html/missions/basic/9/.

In the last level, however, in my attempt to limit people to using server side includes to display the directory listing to level 8 only, I have mistakenly screwed up somewhere.. there is a way to get the obscured level 9 password. See if you can figure out how...

This level seems a lot trickier then it actually is, and it helps to have an understanding of how the script validates the user's input. The script finds the first occurance of '<--', and looks to see what follows directly after it.

 

네트워크 시큐리티 샘이 우주선과 함께 침몰할 예정입니다. 그는 아무리 많은 사람들이 암호를 복구하더라도 암호 파일을 계속 숨기기로 결심했습니다. 이번에는 /var/ww/hackthissite.org/html/missions/basic/9/에 파일이 저장됩니다.

하지만 마지막 단계에서 디렉터리 목록을 8레벨로만 표시하는 것을 포함하여 서버측 사용을 제한하려다 제가 실수로 어디선가 실수를 했습니다. 숨겨진 9단계 암호를 얻을 수 있는 방법이 있습니다. 어떻게 할 수 있는지...

이 수준은 실제보다 훨씬 더 까다로워 보이며 스크립트가 사용자의 입력을 확인하는 방법을 이해하는 데 도움이 됩니다. 이 스크립트는 '<--'의 첫 번째 발생을 찾고, 그 바로 뒤에 무엇이 나타나는지 살펴본다.

 

-----------------------

 

영어공부를 해야하는데... 파파고에 맨날 돌리게 된다...ㅠㅠ

 

일단 구글에 SSI 와 유닉스 디렉토리 구조에 대해 검색해보자.

 

SSI이란?

HTML 페이지의 전체 코드를 수정하지 않고 공통 모듈 파일로 관리하며 동적인 내용을 추가하기 위해 만들어진 기능으로 주로 방문자 수 세거나 홈페이지 로고 수정  등 간단한 기능 추가할 때 사용한다. 또한 '.shtml' 확장자 파일을 사용한다.

 

<!--#echo var = "DATE_LOCAL" -->

-> DATE_LOCAL = 현재 시간을 출력해주는 지시어

 

명령어를 실행하기 위해 속성부분을 'cmd'로 변경해주고(exec cmd) ls 명령어를 입력한다.

-> <--#exec cmd="ls" -->

 

현재 디렉터리 하위에 있는 디렉터리와 파일 목록을 출력해준다.

다음으로 cat 명령어를 이용하여 passwd 파일의 내용을 출력하는 SSI 지시어를 주입해 passwd 파일의 내용을 출력해준다.

-> <!--#exec cmd="cat /etc/passwd" -->


passwd 파일의 내용을 출력해준다.

이제 netcat을 이용하여 악의적인 스크립트 파일을 서버에 추가해보자

netcat은 앞에 취약점 공격에서도 많이 사용해 보았으므로 자세한 설명은 생략하겠다.


출처: https://tkdrms568.tistory.com/141 [보안 신입사원의 보안 공부]


뒷 내용이 더 있지만 이해를 아직 잘 못해서 패스. (하다보면 이해되겠지)

 

음... 하지만 패스워드만 입력하게 되어있다;

 

유닉스 디렉토리에 대해 검색해보자.  음... 그냥 트리 형태라는 건데...

 

<--#exec cmd="ls" --> 가 안먹히는데...

여기서 소스도 보고 script 검색도 해보고 하다가 정말 아차 싶었다.

 

1. "/var/ww/hackthissite.org/html/missions/basic/9/에 파일이 저장 " 이 문구!

<!--#exec cmd="ls /var/ww/hackthissite.org/html/missions/basic/9"--> 를 입력해봤으나 역시나 안먹힌다는...

2. "디렉터리 목록을 8레벨로만 표시하는 것을 포함하여 서버측 사용을 제한하려다 "  이 문구!

무슨 뜻인지는 잘 모르겠으나 일단 레벨 8에서는 입력이 됐었으니 레벨 8로 돌아가서 저 명령어를 실행해봤다!

 

잘된다 ㅜㅜ  감격!!

 

레벨 9 컴플릿!!

 

 

 

 

 

반응형

댓글