yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

challenge (old-14) 본문

wargame 풀이/webhacking.kr

challenge (old-14)

yehey 2020. 10. 15. 22:01

14번 문제

이번에는 source code를 보는 버튼도 없고 입력란만 있다.

그래서 F12를 눌러서 페이지를 확인해보았다.

 

다음과 같은 페이지 코드가 나왔고 입력을 하고 click 버튼을 누르면 ck()함수가 실행된다.

이중에서 ck함수를 좀 더 분석해보았다.

//ck() code

function ck(){
  var ul=document.URL;		//해당 url을 가져와서 ul에 저장
  ul=ul.indexOf(".kr");		//".kr"이 처음으로 나오는 index를 ul에 저장
  ul=ul*30;			//ul*30을 ul에 저장
  if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; } //ul과 사용자 입력pw 가 같아야 함
  else { alert("Wrong"); }
}

즉 우리가 입력한 pw와 ".kr"이 나오는 url의 index*30이 같아야 문제가 풀린다.

 

아무 숫자나 입력했을 때는 wrong이라는 팝업창이 뜬다.

 

그럼 이제 ul을 계산해보자!

F12-console 창으로 가서 document.URL을 입력하면 해당 페이지의 url이 출력된다.

 

현재 페이지의 url은 https://webhacking.kr/challenge/js-1/?input_pwd=123 이다

(input_pwd=123은 위에서 123을 그냥 입력해봐서 붙여진 것,,,)

여기서 ".kr"이 나오는 index을 직접 세어봐도 되지만!

콘솔창에서 구해보도록 하겠다!

document.URL.indexOf(".kr");을 입력해주자

(document.URL에서 .kr이 나오는 첫번째 index를 반환해준다.)

URL에서 ".kr"의 index는 18이고 여기에 30을 곱해주면 540이라는 결과를 얻을 수 있다.

540을 입력창에 전송하면 문제가 해결된다!!

'wargame 풀이 > webhacking.kr' 카테고리의 다른 글

challenge (old-45)  (0) 2021.01.15
challenge (old-44)  (0) 2021.01.14
challenge (old-18)  (0) 2020.10.17
challenge (old-17)  (0) 2020.10.16
challenge (old-01)  (0) 2020.09.24
Comments