Web Hacking/webhacking.kr

[webhacking.kr] Challenge 1

SolB 2022. 9. 9. 20:13

위 문제는 challenge 1의 페이지이다.

view-source를 눌러주어 아래와 같이 코드를 확인하였다.

<?php
  include "../../config.php";
  if($_GET['view-source'] == 1){ view_source(); }
  if(!$_COOKIE['user_lv']){
    SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");
    echo("<meta http-equiv=refresh content=0>");
  }
?>
<html>
<head>
<title>Challenge 1</title>
</head>
<body bgcolor=black>
<center>
<br><br><br><br><br>
<font color=white>
---------------------<br>
<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>3) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>
<br>
<a href=./?view-source=1>view-source</a>
</body>
</html>

반복적인 $_COOKIE['user_lv']이 등장하는데, 이는 cookie와 관련이 있을 것이라 생각하여 이를 확인해보기로 하였다.

이 값이 3보다 크면 문제를 풀 수 있다. 하지만 4이상이면 쿠키값이 1이 된다. 그 사이의 값을 이용해주어야 할 것 같다.

 

개발자 도구에서 쿠키값을 확인해주었다.

user_lv의 value가 1인 것을 확인하였다.

 

이 값을 3.5로 바꾸어주고 새로고침을 해주었다.

 

그리고 다음과 같이 해결했음을 알려주었다.