Dreamhack/Web hacking

[Web hacking] Carve Party Write-up

壓倒 2023. 1. 14. 14:44

문제


Carve Party 문제는 호박을 10000번 클릭해 플래그를 획득하는 문제이며 문제 파일로 html 파일이 주어진다.

Carve Party(출처 : dreamhack)

풀이


문제 파일을 열게 되면 다음과 같이 호박과 카운팅 숫자가 나타나게 된다.

Carve Party 문제 파일(출처 : dreamhack)

해당 파일의 소스코드를 확인하면 다음과 같이 카운팅하는 부분이 존재한다. 하지만 이를 10이나 100으로 변경 후 클릭하게 되면 원하는 형태의 플래그가 아닌 이상한 문자열이 나오는 것을 알 수 있다.

else {
    $('#clicks').text(10 - counter);
  }
}

$(function() {
  $('#jack-target').click(function () {
    counter += 1;
    if (counter <= 10000 && counter % 100 == 0) {
      for (var i = 0; i < pumpkin.length; i++) {
        pumpkin[i] ^= pie;
        pie = ((pie ^ 0xff) + (i * 10)) & 0xff;
      }
    }
    make();
  });
});
이상한 문자열

이러한 결과를 통해 단순 횟수만 변경하는 것이 아니라 반복문을 통해 10000번 클릭하면 제대로된 플래그가 나오는 것을 확인할 수 있으며 코드는 다음과 같다.

for(i = 0; i<10000; i++){
    $('#jack-target').click()
}
$(’#jack-target’).click() 다음과 같은 코드는 문제 파일 상 다음과 같은 코드가 존재하기 때문에 클릭하는 부분만 가져와 작성하였다.
$(function() {
                $('#jack-target').click(function() {
                    counter += 1;
                    if (counter <= 10000 && counter % 100 == 0) {
                        for (var i = 0; i < pumpkin.length; i++) {
                            pumpkin[i] ^= pie;
                            pie = ((pie ^ 0xff) + (i * 10)) & 0xff;
                        }
                    }
                    make();
                });
            });

Flag


DH{I_lik3_pumpk1n_pi3}


Uploaded by N2T