Sh4n3e
[웹해킹][Natas] Natas9 문제 풀이 본문
문제를 풀어보자!
[URL : http://natas9.natas.labs.overthewire.org]
해당페이지에 접속하면 아래와 같은 화면이 뜬다.
Find words containing으로 해당 단어가 포함되어 있는지 찾아보는 페이지로 제작되어 있는듯 하다.
해당 문제를 정확하게 파악하기 위해 Source code를 볼 수 있는 Link로 들어가보자.
상당히 인상깊은 부분을 볼 수 있는데, 그것은 바로 passthru이다. passthru가 어떤 기능을 하는 함수인지 간단하게 알아보고 넘어가자.
http://php.net/manual/kr/function.passthru.php
php.net에서 passthru 함수에 대한 정의를 찾아볼 수 있는데,
passthru(PHP 4, PHP 5, PHP 7) passthru — Execute an external program and display raw output 설명 ¶void passthru ( string $command [, int &$return_var ] )The passthru() function is similar to the exec() function in that it executes a |
위와 같이 설명되어 있다. 간단하게 말하자면 PHP script내에 존재하는 passthur 함수는 command를 실행할 수 있는 exec()함수와 유사한 함수라는 것이다. (사실 해당함수는 PHP용 webshell에 많이 이용되는 함수이다.)
이 함수는 exec() 또는 system()에 대신하여 사용되어 질 수 있다. (결론적으로 위험한 함수라는 것이다....)
그럼 다시 위로 돌아가서, 해당함수는 아래의 명령어를 쓰고 있는데,
passthru("grep -i $key dictionary.txt");
grep -i $key dictonary.txt
이것은 dictionary.txt에 $key에 해당하는 값이 존재하는지 확인하는 명령어이다.
이렇게 되어있으면 과연 우리가 원하는 함수를 어떻게 사용하지 싶을 것이다.
간단하다... ';'이거 하나면 된다.
;은 하나의 명령어를 끝냄을 의미한다.
따라서 우리는 이런식으로 명령어를 사용할 것이다.
;cat /etc/natas_webpass/natas10
이렇게되면 Full 명령어는 아래와 같을 것이다.
# grep -i ; cat /etc/natas_webpass/natas10 dictionary.txt
이렇게 되면 grep -i 가 실행되고,
cat /etc/natas_webpass/natas10 dictionary.txt 가 실행될 것이다.
실행해보자.
우리는 natas10행 티켓을 얻었다. 다음으로 넘어가보자!
nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu
'Wargame > NATAS' 카테고리의 다른 글
[웹해킹][Natas] Natas11 문제 풀이 (0) | 2017.11.28 |
---|---|
[웹해킹][Natas] Natas10 문제 풀이 (0) | 2017.11.27 |
[웹해킹][Natas] Natas8 문제 풀이 (0) | 2017.11.27 |
[웹해킹][Natas] Natas7 문제 풀이 (0) | 2017.11.27 |
[웹해킹][Natas] Natas6 문제 풀이 (0) | 2017.11.27 |