귀여운공이랑, 결승선이 있다. 공을 눌러보고싶어서 눌러봤다.
마우스커서를 올렸더니, 공이 yOu 로 변하고, 클릭하니까 1px 정도 움직여서 계속 눌러봤다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<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;>
</body>
</html>
|
[ 소스분석 ]
onclick ( 클릭했을때 ), this.style.left 값을 가져와 10진수로 바꾼뒤, 1px 을 추가해준다.
만약 1600px 을 달성하면, ?go=1600px 이동하는것같다. 이동해봤다.
no hack 이라고뜬다. this.style.left 값을 검사하는것 같다.
개발자도구에서 눌렀을때 1600px 이 되도록 수정하고, 눌러보면
no hack 이다. 아까 go=1600px 으로 만들어서 그런것같다.
나갔다가 들어와서
다시 개발자도구에서 수정하면 문제가 풀린다.