Slog
Sign in

webhacking.kr 1번 (old) 문제 풀이

2020 Sep 23
2 min read
webhacking.kr 1번 (old) 문제 풀이

오늘은 쿠키와 관련된 문제, webhacking.kr 의 1번 (old) 문제를 함께 풀어나가도록 하겠습니다.

문제 해석

우선, webhacking.kr 의 1번 (old) 에 접속해보면 다음과 같은 사이트로 이동됩니다.

image

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']>=6) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>5) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>
<br>
<a href=./?view-source=1>view-source</a>
</body>
</html>

여기서 주의깊게 봐야 할 부분은

<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>=6) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>5) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>

이 부분입니다.

코드를 해석하여 보면 user_lv 라는 쿠키의 값이 없거나 6 이상이면 1로 저장해주고,
이후 쿠키가 5 초과면 문제가 풀리는 함수가 실행되는 모습을 볼 수 있습니다.

간단하게 생각해서 user_lv 라는 쿠키가 5 초과, 6 미만으로 저장하면 문제를 쉽게 풀 수 있습니다.

image

개발자 도구를 이용하여 해당 쿠키를 수정 해줍니다.

그런 다음 새로고침을 하면 문제가 해결됩니다.

Explore Popular Contents