Wargame/Webhacking.kr

webhacking.kr - old 10

G_OM 2024. 3. 13. 11:48

 

 

 

문제 화면이다 왼쪽 끝에는 문자  'o'이 있고 오른쪽 끝에는 'Goal'이라는 라인이 지정되어 있다.

문제만 보면 저기로 지나가야 하는거같다.

개발자 도구로 코드를 봐보자.

 

 

 

 

 

 

 

 

 

<a id="hackme" style="position:relative;left:0;top:0" onclick="this.style.left=parseInt(this.style.left,10)+1+'px';if(this.style.left=='1600px')this.href='?go='+this.style.left" onmouseover="this.innerHTML='yOu'" onmouseout="this.innerHTML='O'">O</a>

 

 

문제의 중요한 코드를 발췌해서 해서 가져와봤다 id 명도 'hackme'라고 쓰여있기에

 

보면 onclick 이벤트 핸들러와 onmouseover 이벤트 핸들러가 있었다.

 

마우스가 문자 'o'에 올려져 있으면 'yOu'라는 문자열로 바뀌고 클릭을 한다면 오른쪽으로 1px씩 이동한다.

 

그리고 끝에 조건이 달려있다.

 

'if(this.style.left=='1600px') left 속성이 1600px 이 될 때 URL 뒤에 '? go=(현재오른쪽 px)' 같은 쿼리 문자열을 추가하여 페이즈를 다시 로드한다.

 

한번 문제를 풀어보자.

 

 

 

 

 

 

 

개발자 도구를 이용해서 left 값을 '1599'로 바꿔서 문자 'o'를 클릭해 보자.

 

 

 

 

 

 

 

클릭하자마자 새로운 URL 이 생기고 페이지를 로드하면서 

 

 

 

 

 

 

 

문제가 풀린다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

혹시 'left' 변경 과정에서 'px'를 넣어버리면

 

 

 

 

 

 

 

'no hack'라는 문구가 뜨니 조심하자.