ii4gsp

wargame.kr 8번 [strcmp] 본문

웹 해킹/wargame.kr

wargame.kr 8번 [strcmp]

ii4gsp 2020. 1. 14. 16:28

strcmp 함수를 우회 할 수 있다면 플래그를 얻는다고 한다.

Start를 눌러주자

 

 

 

 

password 입력칸과 밑에 view-source가 있다.

소스코드를 보도록 하자

 

 

 

 

<?php
    require("../lib.php"); // for auth_code function

    $password = sha1(md5(rand().file_get_contents("/var/lib/dummy_file")).rand());

    if (isset($_GET['view-source'])) {
        show_source(__FILE__);
        exit();
    }else if(isset($_POST['password'])){
        sleep(1); // do not brute force!
        if (strcmp($_POST['password'], $password) == 0) {
            echo "Congratulations! Flag is <b>" . auth_code("strcmp") ."</b>";
            exit();
        } else {
            echo "Wrong password..";
        }
    }

?>
<br />
<br />
<form method="POST">
    password : <input type="text" name="password" /> <input type="submit" value="chk">
</form>
<br />
<a href="?view-source">view-source</a>

/var/lib/dummy_file에서 password를 랜덤으로 가져오는데 입력값이 password와 같아야 한다.

strcmp함수는 두 문자열이 같을 때 0을 반환한다.

하지만 strcmp 함수는 문자열과 배열을 비교했을때도 NULL을 반환한다.

즉, 0을 반환한다.

문자열과 배열을 비교하게되면 무조건 0을 반환한다.

 

 

 

 

아래와 같이 배열형태로 바꿔주면 무조건 0을 반환한다.

 

 

 

배열형태로 바꿔주고 아무 값이나 넣어주면 된다.

 

 

'웹 해킹 > wargame.kr' 카테고리의 다른 글

wargame.kr 9번 [DB is really GOOD]  (0) 2020.01.14
wargame.kr 7번 [md5 password]  (0) 2020.01.14
wargame.kr 6번 [fly me to the moon]  (0) 2020.01.14
wargame.kr 5번 [WTF_CODE]  (0) 2020.01.14
wargame.kr 4번 [login filtering]  (0) 2020.01.14
Comments