[webhacking.kr] 문제풀이 No.14
[ webhacking.kr 사이트의 문제에 대한 풀이입니다. ]
앞선 문제중 6번에 대한 풀이에 문제가 생겨서 우선 14번부터 올린다.
[ 풀이 ]
우선 문제화면을 살펴보자. 특이점 없이 굉장히 평범하다.
아무값이나 넣고 버튼을 눌러보면 wrong이라는 알림이 뜬다.
아마 답에 맞는 값을 입력해야 풀리는 문제 같다.
가장 먼저 개발자 도구를 켜서 분석코드에 대한 분석을 해보자.
{ Solution } console로 함수 실행
이번 문제는 코드 구조가 상당히 간단하다.
<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>
<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"); }
}
</script>
</body>
</html>
우선 html 코드는 form에 대한 코드 뿐이다.
onclick, 즉 클릭 시에 하단의 js 코드의 ch() 함수를 실행한다.
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"); }
}
이 코드를 간단하게 분석해보자면,
(1) ul
을 정의 할 때 현재 페이지의 주소를 갖고 온다.
(2) ul
값을 ul
중에서 .kr 의 인덱스 값을 불러온다.
(3) ul
값에 30을 곱한 값을 지정해준다.
(4) form 에서 입력 받은 값을 ul
과 비교하여 맞다면 주소를 ?ul*pw.input_pwd.value
로 이동시킨다.
해당 코드에 대해서는 고민할 필요 없이 console 창으로 넘어가 코드를 변형시킨 후, ul*pw.input_pwd.value
의 값을 구해보자
여기서 코드를 간결하게 하기 위해서 조금만 생각해보자면, ul*pw.input_pwd.value
의 값은 결국 ul
과 pw.input_pwd.value
의 값이 같을 때 계산되기 때문에 ul의 제곱값
을 구하면 된다.
function ck(){
var ul=document.URL;
ul=ul.indexOf(".kr");
ul=ul*30;
console.log(ul**2);
}
ck();
콘솔에 넣고 실행 시키면 결과 값이 291600
이 나온다.
그럼 웹페이지 주소를 다음과 같이 수정하면 문제가 해결된다.
마무리하며...
이번 문제는 비교적 어렵지 않은 난이도에 속했다. 현재 작성중인 글은 모두 5~10점 수준의 문제이니 어렵지 않게 해결 가능하다.
다음 문제는 15번이다. 15번도 재미있는 문제이니 기대해도 좋다.
Author And Source
이 문제에 관하여([webhacking.kr] 문제풀이 No.14), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kingsparkdev/webhacking.kr-문제풀이-No.14저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)