본문 바로가기
Wargame Write-Up/Webhacking.kr

[Webhacking.kr] (Web) 10번 풀이 (old-10)

by snwo 2020. 3. 24.

귀여운공이랑, 결승선이 있다. 공을 눌러보고싶어서 눌러봤다.


마우스커서를 올렸더니, 공이 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 으로 만들어서 그런것같다.

나갔다가 들어와서

 

 

다시 개발자도구에서 수정하면 문제가 풀린다.