반응형
아래와 같이 코드가 구현되어 있다.
<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 |