본문 바로가기
정보보안/wargame

[webhacking.kr] challenge(old). old-10

by 민-Zero 2020. 4. 1.

10번 문제에 처음 들어가게 되면 위와 같은 화면을 볼 수 있다. 

 

회색 부분에 O라는 모양에 마우스 포인터를 올리면 yOu로 변경된다.

 

글자를 클릭하면 O라는 글자가 점점 오른쪽으로 이동되는 것을 확인할 수 있다. 아마도 맨 오른쪽의 goal이라는 부분까지 도착해야하는것 같다. 이외에 특별한 점은 없으므로 소스코드를 확인해보자.

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

 

hackme라는 id가 존재하고 클릭할 때 onclick 메서드를 통해 클릭시 1픽셀씩 이동하는 것을 확인할 수 있다. 또한 조건문에서 this.style.left의 값이 1600이 되면 Goal이 위치한곳과 같아지며 url에 '?go='+this.style.left이 추가되며 문제가 해결되는 것 같다. 직접 1600번의 클릭을 해도 가능하겠지만 너무 불필요한 행동이므로 다른 시도를 해보자.

 

그래서 소스에 나와있는 것처럼 url에 직접 1600px의 값이 들어가도록 시도해 보았더니 no hack이라는 글자가 출력되며 풀리지 않았다.

그래서 이번에는 this.style.left에 1599란 값을 대입해보았다. this는 객체 자기 자신을 가리키는 역할이므로 값을 넣어줄 때는 해당 객체의 id인 hackme를 사용하여 hackme.style.left로 넣어주면 된다. 1599의 값을 넣고 한 번 더 클릭하면 1600이 된다.

한 번의 클릭으로 1600에 도달할 수 있었고 해당 방법으로 풀리게 되었다.

댓글