728x90


풀이

제공된 html 파일에 들어가서 내 생일을 입력해보았다. 아쉽게도 정답이 아니다.

6자리 정도면 brute force도 나쁘지 않을 것 같지만 일단 소스코드를 살펴보자. 

confrim 버튼을 누르면 어떤 일이 발생하는지 요소 버튼을 통해 확인해보니, 입력한 값이 _0x9a220 함수로 넘어가는 것을 확인할 수 있었다.

sources 탭을 통해 _0x9a220 함수를 찾아봤는데 하나도 알아볼 수 없었다.

그냥 brute force를 하기로 하자.

일단 방해가 되는 return alert('Wrong') 부분을 return 0가 되도록 원본 파일을 수정해주었다.

for (var y = 0; y <= 99; y++) {
    var result = 0;
    for (var m = 1; m <= 12; m++) {
        for (var d = 1; d <= 31; d++) {
            var input = String(y).padStart(2, '0');
            input += String(m).padStart(2, '0');
            input += String(d).padStart(2, '0');
            console.log(input);
            result = _0x9a220(input);
            if (result) {
                break;
            }
        }
        if (result) {
            break;
        }
    }
    if (result) {
        break;
    }
}

그리고 코드를 작성하여 console 창에 입력했다. 

한참 기다린 뒤에야 값이 나왔다. 

그리고 화면에 떠있는 flag를 확인할 수 있었다. 

'Write-up > Reversing' 카테고리의 다른 글

[Dreamhack] rev-basic-9  (1) 2024.05.18
[Dreamhack] rev-basic-8  (0) 2024.05.14
[Dreamhack] rev-basic-7  (0) 2024.05.14
[Dreamhack] rev-basic-6  (0) 2024.05.14
[Dreamhack] rev-basic-5  (0) 2024.05.14

+ Recent posts