본문 바로가기
해킹/webhacking.kr

[webhacking.kr] Challenge(Old) old-10 풀이

by yenua 2022. 6. 20.
반응형

https://webhacking.kr/challenge/code-1/

 

Challenge 10

 

webhacking.kr

 

문제 페이지인데, 감도 안잡힌다.

 

소스코드를 보자

<html>
<head>
<title>Challenge 10</title>
</head>

<body>
<hr style=height:100;background:brown;>
<table border=0 width=1800 style=background:gray>
<tr><td>
<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><br>
<font style="position:relative;left:1600;top:0" color=gold>|<br>|<br>|<br>|<br>Goal</font>
</td></tr>
</table>
<hr style=height:100;background:brown;>
no hack

보면 hackme라는 아이디를 가진 a태그의 엘리먼트가 있다.

자세히 보면, left, top 마진이 0이고, 클릭했을 때 이 마진이 1씩 늘어나고 이게 1600px이 되면 클릭할 수 있는 링크가 출력된다.

링크를 보면 go=숫자 형태로 get 인자를 붙이는데, 주소창으로 직접 넣었더니 no hack이라는 문구가 아래에 출력되었다.

 

문제화면에서 오른쪽으로 스크롤을 해보면 숨겨져 있던 골인 선이 보이는데, 무조건 O를 클릭해서 저기까지 넘어가야 하나보다. 깡으로 하려면 1600번 시도를 하면 되겠지만, hackme의 스타일 값 중 left를 수정해서 그 횟수를 줄일 수 있다.

id=hackme style="position:relative;left:0;top:0"

left:1599나 1590으로 수정하고 클릭을 해보았더니 여전히 no hack이 떴다. 

그런데 1580으로 바꾸고 20번 클릭해서 뜬 링크를 클릭하니 클리어가 됐다..!

무슨 기준인가 하고 생각해봤는데, 테스트 해보니까 주소값에 go 인자가 붙으면 no hack으로 처리하고, 없으면 정상적으로 솔브 된다.

 

1580으로 바꾸기 전에 문제 화면을 다시 켰었는데 그 때 이전에 입력했던 go 인자가 사라지면서 솔브가 되었던 것 같다.

left:1599로 바꾸고 한번만 클릭하면 클리어 된다.

반응형