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로 변경후 새로고침하니 풀렸다는 알림이 떴다.