본문 바로가기

Webhacking.kr

[Webhacking.kr] Challenge 14

 

문제를 눌러 들어가게 되면

 

Challenge 14

...

 

입력란 말고 아무것도 없다..

 

일단 입력란이 있으니 아무 말이나 적어보면

 

 

틀렸다고 나온다(뭐지??).

 

우리에겐 개발자도구가 있으니 F12를 눌러 소스코드를 보자

 

 

이런..

 

알듯말듯한 코드들이 있다..

 

지난 게시글에선 자세하게 알아보지 않았지만 그러면 공부가 안될것같으니

 

오늘부턴 코드를 한줄한줄 분석해보겠다!

 

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;
}

 

 

function ck()

 

먼저 첫줄은 ck란 함수를 만들어낸단 뜻이다(별로 중요하진 않음).

 

var ul=document.URL;

 

var은 변수를 만들어낸 뜻이다. 그리고 뒤에 document.URL은 현재 위치를 불러오는 뜻으로,

 

ul의 현재 값은 https://webhacking.kr/challenge/js-1/ 가 된다! 

 

ul=ul.indexOf(".kr");
ul=ul*30;

 

다음으로 indexOf는 특정 인덱스를 찾는 함수로써 

 

괄호 안의 .kr이 함수의 몇번째에 위치하는지를 찾는다.

(주의 : 인덱스는 0부터 시작한다!)

 

현재 ul은 https://webhacking.kr/challenge/js-1/ 이므로 

 

앞에서부터 세어보면 .kr은 18번째에 위치해있다. (현재 ul = 18)

 

또한 바로 아래에 ul에 30을 곱해야하기때문에

 

ul은 540이 된다!

 

if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; }
else { alert("Wrong"); }

 

이제 ul과 우리가 입력한 비밀번호를 비교해 맞으면 특정 웹사이트로 연결된다!

 

location.href  = " " 는 " " 안에 특정 페이지로 이동시키는 함수이다, 이때 ?는 쿼리 문자열을 의미하는데

이부분은 나중에 알아보도록 하자

 

결국 location.href = "?" + ul*pw.input_pwd.value 는 현재 링크 뒤에 ?을 붙이고

ul * 입력한 숫자를 더하는 것이다. (~~/현재 위치/?ul*입력한 숫자)

 

틀리면 우리가 처음에 봤던 Wrong을 출력한다.

 

 

정답을 입력하면 이런 화면이 나온다 :)

 


 

이렇게 문제를 풀어보았는데 아직 부족한것이 많이 느껴진다..

 

부족한 만큼 더 열심히 게시글을 작성해야겠다!

 

또한 계속해서 글 쓰는 방법을 바꿔보아야겠다.

 

"실패를 걱정하지 말고 부지런히 목표를 향하여 노력하라. 노력한 만큼 보상을 받을 것이다." - 노만 V.필

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

[Webhacking.kr] Challenge 6  (0) 2024.10.06
[Webhacking.kr] Challenge 17  (0) 2024.10.06
[Webhacking.kr] Challenge 16  (0) 2024.10.06
[Webhacking.kr] Challenge 1  (0) 2024.10.05
[Webhacking.kr] Challenge 3  (0) 2024.10.04