본문 바로가기
[웹해킹]/[Webhacking.kr]

[Webhacking.kr] 10번 문제풀이

by Hevton 2020. 9. 14.
반응형

10번을 들어가면 무슨 트랙같은게 있다.

아 눈아파

이게뭘까.. 일단 옆으로 끝까지 넘겨보면

결승골같은게 있다

이런 결승골같은게 있다. 이게 뭘까 도대체? 라는 마음을 갖고 웹페이지의 소스보기를 해보자.

<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>

 

클릭할때마다 Left 값이 증가하고, 이 값이 1600이 되면 ?go=1600px로 페이지가 이동되는 것 같아서 url 뒤에 저걸 붙여서 페이지를 바로 이동시켜봤더니 'no hack' 이라는 문자가 뜬다. 이렇게 하지 말라는것같다. 그래서 그냥 크롬의 개발자 도구를 이용해서 left:0 부분을 1599로 바꿔준 뒤 한번 클릭하면 1600이 되도록 해줬다. 그리고 O를 한번 클릭해주면 문제가 풀린다.

이미 풀어서 이렇게뜬다.

 

ps.

parseInt('10px') 하면 10만 출력됩니다. 그리고 paseInt의 두번째 인자는, 첫번째 인자로 넘겨주는 값이 어떤 진법인지 명시해주는 역할이고, parseInt의 결과는 항상 10진수로 반환됩니다.

ex) 16진수를 10진수로 바꾸고 싶을 때 parseInt("6A", 16) => 16진수 6A를 10진수로 변환해줘 라는 말.

반응형