WebHacking/Wargame.kr

Wargame.kr md5 compare

HSr00t 2018. 2. 25. 06:23

웹 문제 처음부터 푼것들 전부 다 Write up을 올리는 것 보다 나한테 도움이 된 것들 위주로 Write up을 올리는게 좋다고 생각해서 md5_compare문제를 시작으로 Write up을 쓸려고한다.

md5와 관련된 문제다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
    if (isset($_GET['view-source'])) {
         show_source(__FILE__);
         exit();
    }
 
    if (isset($_GET['v1']) && isset($_GET['v2'])) {
        sleep(3); // anti brute force
 
        $chk = true;
        $v1 = $_GET['v1'];
        $v2 = $_GET['v2'];
 
        if (!ctype_alpha($v1)) {$chk = false;}
        if (!is_numeric($v2) ) {$chk = false;}
        if (md5($v1!= md5($v2)) {$chk = false;}
 
        if ($chk){
            include("../lib.php");
            echo "Congratulations! FLAG is : ".auth_code("md5_compare");
        } else {
            echo "Wrong...";
        }
    }
?>
<br />
<form method="GET">
    VALUE 1 : <input type="text" name="v1" /><br />
    VALUE 2 : <input type="text" name="v2" /><br />
    <input type="submit" value="chk" />
</form>
<br />
<a href="?view-source">view-source</a>
cs


md5와 해킹과 연관 시켜서 생각을 해보면 md5 해쉬충돌이 먼저 생각이 난다.

https://stackoverflow.com/questions/22140204/why-md5240610708-is-equal-to-md5qnkcdzo


위 사이트가 이번 문제 모든 것 을 설명해 주고 있다..


== 으로 비교를 하면 type는 고려하지 않고 비교하기 때문에 최대한 쓰지 않는 것이 좋다.