문제
소스코드
array_key_exists("확인하고자 하는 키", [배열명]);
배열의 키가 존재하는지 확인하는 함수. 존재하면 1 리턴
passthru("명령어");
명령어 시행하는 함수
grep
입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어
grep -i : 대소문자 무시
첫번째 if문에서 입력한 내용이 key에 저장이 된다.
두번째 if문에서 key값이 있으면 key값을 dictionary.txt에서 찾는다.
풀이
grep을 이용하여 문제를 풀면 될거 같다.
grep 명령어에 익숙하지 않으면 문제 풀때 좀 어려울 거 같다.
먼저 apple을 넣어보았다.
niddle에 apple이 들어가고 화면은 다음과 같이 뜬다.
grep은 정규표현식을 사용할 수 있다. 여기에 초점을 맞춰야 되는 거 같다.
grep은 다음과 같이 쓸 수 있다.
grep [찾을 문자열] [파일]
grep [찾을 문자열] [파일 1] [파일 2]
따라서 폼에 ^ /etc/natas_webpass/natas10 을 넣으면 될 거같다.
이것이 전달이 되면 /etc/natas_webpass/natas10와 dictionary.txt의 파일 내용을 다 보여준다.
/etc/natas_webpass/natas10에 비번이 있다는 것을 LEVEL6->LEVEL7에서 알 수 있다.
나왔다.
비번은 nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu
다른 방법
세미클론을 이용하여 grep -i의 명령어를 끝낼 수 있다.
따라서 ;cat /etc/natas_webpass/natas10을 폼에 넣어준다.
그러면 grep -i가 시행이 되고 cat /etc/natas_webpass/natas10 dictionary.txt가 시행이 되어서 /etc/natas_webpass/natas10와 dictionary.txt 파일 내용을 볼 수 있다.