포스트

webhacking.kr old 14 문제 풀이

webhacking.kr old 14 문제 풀이

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

문제 풀이

웹사이트에 접속하면 인풋 박스가 하나 있고 submit 버튼만 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<body>
<br><br>
<form name="pw" onsubmit="ck();return false"><input type="text" name="input_pwd"><input type="button" value="check" onclick="ck()"></form>
<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"); }
  return false;
}
</script>
</body>

HTML 코드를 분석해보면 <script> 태그가 존재하고 그 안에 ck()라는 함수가 있다.
페이지에서 제출을 할 때에 호출되는 함수가 이것이다.

코드를 살펴보면 페이지의 URL을 읽어와서 “.kr”의 index에 30을 곱하여 인풋 박스로 입력받은 값과 비교를 하여 동일하면 특정 페이지로 /?ul + input_pwd.value 페이지로 redirect 된다.
아마 redirect 될 때 문제가 해결되는 것으로 보인다.

해당 코드를 Console 탭을 이용해서 적절하게 수행해주면 정답 값을 얻을 수 있고 그것을 인풋으로 입력해 제출하면 문제가 해결된다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.