SISS/Natas,LOS, XSS

Natas 22 → 23

3190024 2020. 7. 29. 00:34

패스워드를 입력해야 한다.

Password:
<form name="input" method="get">
    <input type="text" name="passwd" size=20>
    <input type="submit" value="Login">
</form>

passwd라는 이름의 칸에 text type을 입력할 수 있다. 길이는 20까지 가능하다. 보내는 방식은 get 방식이다.

<?php
    if(array_key_exists("passwd",$_REQUEST)){
        if(strstr($_REQUEST["passwd"],"iloveyou") && ($_REQUEST["passwd"] > 10 )){
            echo "<br>The credentials for the next level are:<br>";
            echo "<pre>Username: natas24 Password: <censored></pre>";
        }
        else{
            echo "<br>Wrong!<br>";
        }
    }
    // morla / 10111
?>  

$_REQUEST에 passwd라는 key가 있어야 한다.

strstr(문자열, 찾으려는 문자열): 문자열이 처음으로 나타나는 곳을 찾아 그 위치부터 끝까지의 문자열을 반환한다.

입력하는 곳에는 iloveyou가 반드시 포함되어 있어야 하고, 그 길이는 10보다 커야 한다.

"iloveyou"는 맨 뒤 \0까지 생각하면 총 9글자다. 

길이가 10보다 크기 위해서는 두 글자를 더 붙이면 된다.

 12iloveyou를 입력해보자.

natas24 비밀번호: OsRmXFguozKpTZZ5X14zNO43379LZveg