- 문제경로
- 문제풀이
[문제경로]
https://webhacking.kr/challenge/code-1/
[문제풀이]
문제에 접속하면 위와 같이
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 |