STUDY/write-up

Old-14번, 1번 문제 풀이

까미이모 2025. 4. 25. 10:46

Old-14번 문제

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

해당 코드에서 if문을 보면 입력한 값이 ul과 같을때 링크가 달라진다.

ul값을 알기 위해 console창에서 확인해보았다

 

console창 확인 

ul = documet URL = 'https://webhacking.kr/challenge/js-1/'

ul.indexof(”.kr”) = 18

ul*30 =540

이므로 540을 입력하면 풀었다는 alert창이 뜬다

 

Old - 1번

  • view-source 에서 solve 포함된 if문 살펴보기
<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;  
  // user_lv쿠키값이 숫자가 아니면 True, 숫자면 false
  
  if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;  
  // user_lv값이 4와 같거나 크면 True, 4보다 작으면 false
  
  if($_COOKIE['user_lv']>3) solve(1);
  // user_lv값이 3보다 크면 true 
  
  echo "<br>level : {$_COOKIE['user_lv']}";
?>

세번째 if문이 참이 되어야 문제가 풀린다.

첫번째, 두번째 if문이 참일때 user_lv 값을 1로 설정하고 있으므로

첫번째 if문 → false

두번째 if문 → false

세번째 if문 → true 가 되어야한다.

그러기 위해서는 user_lv 쿠키값은 숫자여야하고, 4보다 작으며, 3보다 커야한다.

따라서 3~4 사이의 숫자를 user_lv 쿠키값에 넣으면 풀린다.

  • user_lv 쿠키값을 3.1로 변경후 새로고침하니 풀렸다는 알림이 떴다.