• 문제경로
  • 문제풀이

 

 

 

[문제경로]

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

 

Challenge 10

 

webhacking.kr

 

 

 

[문제풀이]

문제에 접속하면 위와 같이

O와 Goal이 있는 것을 볼 수 있다. 

문제가 어떻게 작동하는지 자세히 분석하기 위해

Ctrl+U 단축키를 통해 source code를 확인해 봤다.

 

 

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

<body>
<hr style=height:100;background:brown;>
<table border=0 width=1800 style=background:gray>
<tr><td>
<!-- 클릭 가능한 링크를 생성하며 id는 "hackme"로 지정되고 초기 위치는 좌표값(left, top) 0,0으로 설정된다. 해당 링크를 클릭시 좌표값이 1px씩 증가하며 좌표가 "1600px"이 되면 '?go=1600px' 페이지로 이동된다. 마우스를 링크 위에 올리면 'yOu'가 표시되고, 그렇지 않으면 'O'만 화면에 표시된다. -->
<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>

클릭 가능한 링크가 생성되고 

링크의 모양은 마우스가 올려졌을 때

'yOu', 그렇지 않을 때 'O' 모양이다.

링크를 클릭 시 1px만큼 이동하며

1600px가 됐을 때 목표지점으로 이동하며

문제가 해결되는 것 같다.

 

즉 링크를 1599번 클릭해서 Goal에 도착하는 방법과

클라이언트단에서의 source code를 조작하여

한번 클릭 시 1599px 만큼 이동시켜

Goal에 도착하게 하는 방법이 존재하는 것 같다. 

1번째 방법은 힘들게 수작업을 해야 하니

2번째 방법을 사용했다.

 

 

개발자 도구의 요소 탭에서

클릭했을 때 1599px가 움직이도록 설정했다.

(현재 위치 1px도 포함했기에)

 

 

'O' 모양의 링크를 클릭하니

링크의 좌표가 1600px가 되며

문제가 해결되었다.

'Wargame & CTF > Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] old-26  (0) 2024.04.13
[Webhacking.kr] old-06  (0) 2024.04.10
[Webhacking.kr] old-16  (0) 2023.09.22
[Webhacking.kr] old-15  (0) 2023.09.17
[Webhacking.kr] old-17  (0) 2023.09.17

+ Recent posts