article thumbnail image
Published 2021. 5. 14. 23:55

페이지에 들어가니, 의미를 알 수 없는 *이 보인다.
의미를 알아보기 위해 개발자 도구를 열어서 소스코드 확인을 하였다.

 

<body bgcolor="black" onload="kk(1,1)" onkeypress="mv(event.keyCode)">
    <font color="silver" id="c"></font>
    <font color="yellow" size="100" style="position:relative" id="star">*</font>
    <script> 
        document.body.innerHTML+="<font color=yellow id=aa style=position:relative;left:0;top:0>*</font>";
        function mv(cd){
          kk(star.style.left-50,star.style.top-50);
          if(cd==100) star.style.left=parseInt(star.style.left+0,10)+50+"px";
          if(cd==97) star.style.left=parseInt(star.style.left+0,10)-50+"px";
          if(cd==119) star.style.top=parseInt(star.style.top+0,10)-50+"px";
          if(cd==115) star.style.top=parseInt(star.style.top+0,10)+50+"px";
          if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it!
        }
        function kk(x,y){
          rndc=Math.floor(Math.random()*9000000);
          document.body.innerHTML+="<font color=#"+rndc+" id=aa style=position:relative;left:"+x+";top:"+y+" onmouseover=this.innerHTML=''>*</font>";
        }
    </script>
    <font color="yellow" id="aa" style="position:relative;left:0;top:0">*</font>
    <font color="#1134996" id="aa" style="position:relative;left:1;top:1" onmouseover="this.innerHTML=''">*</font>
</body>

코드를 보면 JS을 공부하였다면 알 수 있는 Body 속성에 정의된 이벤트 속성이 눈에 띌 것이다.
-> onkeypress 이벤트 : 사용자가 키보드의 특정 키를 누를 때 발생하는 이벤트

 

키보드를 부를때 마다 스크립트에 정의된 mv 함수가 실행이 된다.
인자값으로 event.keyCode를 넘겨준다는데 이를 KeyboardEvent.keyCode - Web APIs | MDN에서 확인을 하였다.

 

읽어보면 디폴트로 입력된 키의 값을 아스키 코드로 변환한다고 한다.

 

MDN에서 확인하니, onkeypress는 옛날에 손절한 함수이다.
그래서 최신버전 브라우저에선 페이지의 기능이 작동 안됨.

 

mv 함수는 아스키 코드의 인자 값이 124와 같으면 Flag를 주는 것 같다.

 

아스키 코드의 124는 “|”를 뜻한다.

 

페이지에서 “|”를 클릭하니, Flag를 얻을 수 있었다.

 

사실 더 손쉽게 푸는 방법이 있는데, mv함수를 복사하여 개발자 도구의 콘솔에 붙여놓기하여 인자값을 124를 넘겨주면 Flag를 얻을 수 있다.

'워게임 > webhacking.kr' 카테고리의 다른 글

Old - 18 Write Up  (0) 2021.05.15
Old - 17 Write Up  (0) 2021.05.14
Old - 14 Write Up  (0) 2021.05.14
Old - 6 Write Up  (0) 2021.05.14
Old - 15 Write Up  (0) 2021.05.14
복사했습니다!