article thumbnail image
Published 2021. 5. 14. 23:51

Input form이 하나 있는 것을 볼 수 있다.

 

어떤 기능을 하는지 확인을 하기 위해 개발자 도구를 이용하여 코드를 살펴보았다.

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

살펴보니, check 버튼을 클릭하면 스크립트 안에 있는 함수가 실행된다.
함수는 해당 사이트의 URL를 변수 ul에 집어넣고, “. kr”이 시작되는 인덱스를 다시 변수 ul에 삽입한다.
삽입된 인덱스는 30을 곱하여 실질적인 조건 값으로 사용한다.

 

문제를 해결하기 위해선 저 조건 값을 구하여 Input form에 똑같은 값을 넣어서 조건문을 실행시켜야 Flag를 얻을 수 있다.

 

하지만 직접적으로 구할 필요는 없다.
왜냐하면, 해당 코드는 우리한테 있고 우린 그 코드를 복사하여 브라우저의 개발자 도구 안에 있는 콘솔에 실행하면 값을 얻을 수 있다.

 

아니면 URL의 개수를 “.kr”이 시작되는 지점까지 하나하나 세어본 값을 30 곱하면 된다.

해보니 18이 나왔고, 30을 곱하니 540이 나왔다.

 

개발자 도구의 콘솔로 구할거면 이렇게 코드를 넣으면 값이 출력된다.

 

540을 Input form에 넣으니 정답으로 처리가 되었다.

'워게임 > webhacking.kr' 카테고리의 다른 글

Old - 18 Write Up  (0) 2021.05.15
Old - 17 Write Up  (0) 2021.05.14
Old - 16 Write Up  (0) 2021.05.14
Old - 6 Write Up  (0) 2021.05.14
Old - 15 Write Up  (0) 2021.05.14
복사했습니다!