프로젝트/Webhacking.kr

[Webhacking.kr] Challenge(old) 14번 문제

Uggjjini 2021. 7. 5. 22:15

문제페이지는 해당 페이지와 같다.

 

 

페이지에는 입력창이 있으며 임의의 값 'test'를 입력하고 check 버튼을 클릭한다.

 

 

Wrong 이라는 문구가 뜨는 것을 확인 할 수 있다.

 

 

해당 페이지의 소스페이지를 확인해본다.

 


<form name=pw><input type=text name=input_pwd><input type=button value="check" onclick=ck()></form>

 

pw 라는 폼에서 type=text로 사용자가 키보드 입력을 할 수 있도록 하며 입력값은 "input_pwd"로 인식한다.

 

또한 type=button으로 버튼 형태의 입력으로 클릭시 ck()함수가 실행된다.

 

<script>
function ck(){
  var ul=document.URL;
  ul=ul.indexOf(".kr");
  ul=ul*30;
  if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; }
  else { alert("Wrong"); }
}
</script>

ck() 함수가 정의되어 있다.

 

var ul 값에 document.URL 로 현재 사이트의 URL 주소 값이 ul에 들어가는 것을 알 수 있다.

 

indexof() 함수는 받은 인자값의 특정 문자열이 몇번째에 위치해 있는지 계산하여 리턴해주는 함수이다.

 

ul.indexof(".kr")은 해당 URL에서 ".kr"이 몇번째에 위치해 있는지 계산하여 ul 값에 저장한다.

 

그리고 그 ul 값에 30을 곱하여 다시 ul 값에 저장된다.

 

  if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; }
  else { alert("Wrong"); }

 

ul 값과 pw.input_pwd.value 와 비교하여 같은경우 location.href 를 통해 해당 URL 로 이동하고 아닌 경우 "Wrong" 이라는 문구가 뜬다.

 


개발자 도구의 console 기능을 사용하여 ul 값을 알아낸다.

 

 

ul 값은 540이라는 것을 알 수 있다.

 

문제페이지의 입력창에 540을 입력하고 check 버튼을 클릭한다.

 

 

문제가 해결 되었다는 것을 알 수 있다.