반응형

아래와 같이 코드가 구현되어 있다.

<html>
<head>
<title>Challenge 14</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
</style>
</head>
<body>
<br><br>
<form name=pw onsubmit=ck()><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>

 

function ck()를 해석해보면

1. var ul 에 현재 페이지의 URL이 담긴다.

2. URL에서 .kr의 index를 찾는다.

3. index에 30을 곱한다.

4. 곱해진 index가 pw.input_pwd.value와 같을 경우 현재 페이지의 URL에 ?+비교한 값을 같이 보낸다.

 

현재 URL은 https://webhacking.kr/challenge/js-1/?input_pwd= 이런식으로 흘러간다

 

.kr의 인덱스 위치는 18이다.

그러므로 여기에 30을 곱한 값인 540을 보내면 if문을 만족하고 문제가 풀린다.

 

 

-처음에 https://를 빼고 index를 계산하여 못풀었었다.

 

반응형

'webhacking.kr' 카테고리의 다른 글

webhacking.kr [old-16]  (0) 2023.07.13
webhacking.kr [old-06]  (0) 2023.07.13
webhacking.kr [old-17]  (0) 2023.07.13
webhacking.kr [old-18]  (0) 2023.07.13
webhacking.kr [old-1]  (0) 2023.07.13

+ Recent posts