50점 문제는 1개 뿐이어서 이제부터 100점 문제입니다.

6번 먼저 하려고 했는데 인코딩 20번하는게 너무 귀찮아서 14번 먼저 할게요.

 

https://webhacking.kr/

 

Webhacking.kr

Index Welcome Stranger! Notice(en) [2019-08-18] In the process of receiving service, some loss of data has been observed. For example, in very few accounts there may be a truncation of the last one letter of an userid. If userid contains multibyte characte

webhacking.kr


문제를 들어가보면

이게 끝입니다.

 

이제 페이지 소스를 보면

이렇게 나와있네요.

우리가 볼건 function ck() 부분입니다.

여기에서 ul 변수와 pw.input_pwd.value가 같으면 문제가 해결되는거 같습니다.

 

function ck(){
  var ul=document.URL; //ul 변수를 선언하고 ul에 사이트 주소를 넣는다.
  ul=ul.indexOf(".kr"); //ul 변수에서 .kr의 위치가 몇번째인지 찾는다.
  ul=ul*30; //ul 변수에 30을 곱한다.
  if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; }
  else { alert("Wrong"); }
}

이렇게 정리할 수 있습니다.

 

두번째 줄에서 ul변수를 선언하고 사이트 주소를 넣습니다.

그러면 ul에는 https://webhacking.kr/challenge/js-1/ 이렇게 들어가게 됩니다.

 

세번째 줄에서 ul변수에서 ,kr을 찾습니다. 

[text].indexOf("찾는문장"); 이것은 [text]에서 찾는문장이 있으면 그 위치를 반환하고 없으면 -1을 반환합니다. 순서는 0부터 시작됩니다. 

따라서 세번째 줄까지 하게 되면 .kr의 위치는 18이 되게 됩니다.

 

네번째 줄에서 30을 곱하므로 최종적으로 ul의 값은 540이 됩니다.

 

이 값을 입력칸에 넣고 버튼을 누르면 쉽게 문제가 해결됩니다.

 

이렇게 14번 문제를 풀어봤습니다.

'Hacking-기초 > [WEB] Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 26번 [100]  (0) 2020.04.29
Webhacking.kr 24번 [100]  (0) 2020.04.28
Webhacking.kr 17번 [100]  (0) 2020.04.28
Webhacking.kr 16번 [100]  (0) 2020.04.28
Webhacking.kr 15번 [50]  (0) 2020.04.28

+ Recent posts