이런 화면....
find words containing이라니까 뭐 포함된 단어 찾아주는 건가보다..
일단 view sourcecode
그럼 이런 코드가 보인다.
간단히 해석해 보면,
(우리가 입력하는 값이 needle이라는 이름을 갖음)
첫번째 if문은 입력값이 들어왔다면, $key에 그 값을 넣어준다는 소리고
두번째 if문은 $에 값이 넣어졌다면, dictionary.txt에서 $key의 문자열을 검색한다.
grep [OPTION...] PATTERN [FILE...] : 파일로부터 문자열 검색 (-i : 대/소문자 무시)
passthru : php에서 외부 명령어를 실행시킬 때 사용하고 그 결과를 직접 출력.
(실행 결과가 바이너리 파일일 경우, 즉시 브라우저에서 실행시킬 경우에 사용)
여기서는 passthru의 취약점을 이용해서 문제를 풀 수 있다. (command injection)
예를 들어보면,
우리가 "";pwd 를 입력하면,
passthru 함수에서 "";로 grep 명령어를 종료 시킨뒤, pwd를 실행하여 현재 위치를 나타내주게 된다.
그렇다면 natas10의 비밀번호가 있는 파일만 찾으면 끝나겠군.
저저번 문제에서 natas8의 비밀번호가 /etc/natas_webpass/natas8에 있다는 것을 알게 되었으므로
natas10은 /etc/natas_webpass/natas10에 있을 것이라는 것을 알 수 있다.
그러면 입력값으로 "";cat /etc/natas_webpass/natas10 을 넣어주면
전체 명령어는 grep -i "";cat /etc/natas_webpass/natas10 dictionary.txt 가 된다.
끝..
'overthewire.org' 카테고리의 다른 글
[OverTheWire.org_natas] level 10 - level 11 (natas12 password) (0) | 2022.02.16 |
---|---|
[OverTheWire.org_natas] level 9 -level 10 (natas11 password) (0) | 2022.01.27 |
[Overthewire.org_natas] level 7 - level 8 (natas9 password) (0) | 2022.01.26 |
[Overthewire.org_natas] level 6 - level 7(natas8 비번 구하기) (0) | 2022.01.26 |
[Overthewire.org_natas] level 5 - level 6(natas7 비번 구하기) (0) | 2022.01.24 |
댓글