1. 문제
2. 코드
<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();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>
2.1 한땀 한땀 분석해보기
- form 태그에서는 사용자가 입력한 값을 ck( ) script 함수에 넣어서 검사한다.
<form name="pw" onsubmit="ck();return false"><input type="text" name="input_pwd">
<input type="button" value="check" onclick="ck()"></form>
- 해당 코드는 현재의 URL을 가져와서 변수 ul에 넣는다.
var ul=document.URL;
- .kr이 시작되는 위치의 index를 찾고 30을 곱한다.
ul=ul.indexOf(".kr");
ul=ul*30;
- if에서 사용자가 입력한 pw와 ul을 비교하고 같으면 ? 뒤에 ul+pw.input_pwd.value라는 쿼리 문자열이 추가된다.
- 아니면 Wrong 경고창을 띄운다.
if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; }
else { alert("Wrong"); }
return false;
- 현재 URL은 https://webhacking.kr/challenge/js-1/ 이고, .kr은 18번째이다.
- 따라서 540을 넣으면 해결된다.
'Wargame > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-18 (1) | 2024.11.29 |
---|---|
[Webhacking.kr] old-16 (1) | 2024.11.28 |
[Webhacking.kr] old-06 (0) | 2024.11.27 |
[Webhacking.kr] old-17 (0) | 2024.11.26 |
[Webhacking.kr] old-1 (1) | 2024.11.26 |