워게임 스터디

[241001][webhacking] old-14

jisu0924 2024. 10. 1. 19:31

사이트에 접속했더니

https://webhacking.kr/challenge/js-1/

이런 입력칸과 그 옆에 'check' 라는 클릭칸? 이 있었다. 뭔가 해서 아무 글자나 입력해 보았는데

'Wrong'이라는 문구가 나왔다. 아마 답이 따로 정해져 있고 그 답을 맞추는 문제인듯. ctrl + u를 눌러 소스 코드를 확인했다.


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

 

코드를 쭉 보다 보면 ul=ul.indexOf(".kr"), ul=ul*30이라는 부분과 if/else문을 볼 수 있다.

  • ul은 ul 중 '.kr'의 위치이며 거기다 30을 곱하라는 것이다.
  • if문을 보면 ul==pw라고 되어 있고, 이 답이 아닐 시 아까 내가 봤던 'Wrong'을 띄우는 것이었다.

ul==pw이기 때문에 앞서 말했던 ul이 pw가 되는 것이다. 즉, .kr의 인덱스 위치를 구하고 여기다 30을 곱하면 그게 패스워드가 되는 것. 답을 구하면 다음과 같다.

사이트의 주소는 https://webhacking.kr/challenge/js-1/ 이다. 여기서 .kr의 위치가 10(인덱스는 0부터 시작함)임을 알 수 있다. 여기에 30을 곱하면, 18*30 = 540이다. 그렇다면 패스워드는 540? 확인하기 위해 입력칸에 540을 입력한 후 'check' 버튼을 눌렀더니

문제가 풀렸다!!

'워게임 스터디' 카테고리의 다른 글

[241104][SuNiNaTaS] level 1  (0) 2024.11.04
[241006][webhacking] old-01  (0) 2024.10.06
[241006][webhacking] old-17  (0) 2024.10.06
[241001][webhacking] old-16  (0) 2024.10.01
[240925] 드림핵 비기너 정리  (6) 2024.09.25