본문 바로가기

웹해킹

드림핵 Carve Party 롸업

<문제>

할로윈 파티를 기념하기 위해 호박을 준비했습니다! 호박을 10000번 클릭하고 플래그를 획득하세요!

 

서버를 생성해서 링크에 접속해서 푸는 문제가 아니라 그냥 html 파일이 주어진다.

그 말은 정해진 플래그가 어딘가에 숨어있다는 뜻인데 html 파일을 읽어봐도 생전 처음보는 함수가 많아서

플래그가 어디서 어떤 변수에 저장되서 나오게 되는건지 모르겠다

웹 브라우저에서 개발자 도구에서 Ctrl+Shift+f로 전체 검색 DH를 해봐도 안 나온다.

$(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();
  });
});

 

여기서 만번 클릭을 하면 make함수로 나오는 거 같은데 이게 또 그냥 counter 값을 10000000으로 바꿔봐도 안된다.

안되는 이유를 분석해보니까 make 함수 안에서 counter가 어떤 범위에 있을 때마다 특정 변수의 값을 바꿔서

마지막에 counter가 10000을 넘어갔을 때 특정 변수의 값들이 정해진 값이어야 제대로 1씩 증가해서 10000이 됐다고 판단할 수 있게 만들어 놓은 것 같다.

make 함수를 더 자세히 분석해서 해볼까 생각했지만 너무 복잡해 보여서 포기했고

counter를 1씩 자동으로 증가시키는 방법을 생각했다.

 

$(function() {
  $('#jack-target').click(function () {
    while(counter<=10000){
      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();
    }
  });
});

코드를 이렇게 수정했다. (처음에 counter<10000으로 했는데 안되서 다른 방법을 써야 하나 고민했다.)

한번만 클릭하면 플래그가 나오게 된다.

'웹해킹' 카테고리의 다른 글

XSS Filtering Bypass  (0) 2023.11.20
드림핵 blind-command 롸업  (0) 2023.11.05
드림핵 web-ssrf 롸업  (0) 2023.11.05
ServerSide: SSRF  (0) 2023.11.05
드림핵 file-download-1 롸업  (0) 2023.11.05