본문 바로가기

Wargame(hacking)/Dreamhack

Level 1 : Carve Party

< 문제 >

 

https://dreamhack.io/wargame/challenges/96

 

Carve Party

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

dreamhack.io

 

< 해설 >

 

그림 1

 

버프 슈트를 intercept on 한 뒤, 호박을 눌러보았다. 패킷이 잡히지 않으므로, 버튼 클릭은 클라이언트 단에서 행해지는 것을 알 수 있다.  그러므로 코드를 분석해 보자.

 

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

 

위는 해당 html 페이지의 javascript 코드이다. 해당 함수가 동작이 되는데, id가 jack-target 인 요소를 클릭했을 때 발생하는 이벤트 핸들러를 정의하고 있다. 해당 코드를 이용해서, 아래와 같이 count를 만 번 클릭할 수 있도록 코드를 만들어 준다. 

 

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

 

위의 코드를 console 창에서 동작시키면 아래 그림 2와 같이 플래그를 획득할 수 있다. 

 

그림 2

 

한줄 평 : 코드를 구현하는 능력이 상당히 부족하다... (언어의 부족이라 생각..)