본문 바로가기

Wargame/[WebHacking.kr]

[WebHacking.kr] old-01 문제 풀이

※ WebHacking.kr의 워게임 old-01 문제이다.

1. 웹 분석

1) old-01 문제를 들어가니 source 코드 링크가 있다. 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>

 

2) php 부분을 볼 것이다.

<?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']}";
?>
  • 'user_lv' 쿠키가 없으면 값을 1로 하고 쿠키를 생성한다.
  • 'user_lv' 쿠키의 값이 4 이상이면 'user_lv' 쿠키 값은 1이다.
  • 'user_lv' 쿠키의 값이 3보다 크면 slove(1)을 실행할 수 있다.

 

2. 풀이

1) 'user_lv' 쿠키의 값을 3보다 크고 4보다 작은 값으로 만들어 주면 된다.

2) 크롬 관리자 도구(F12) -> Application -> Cookies -> https://webhacking.kr 에 들어가면 'user_lv' 쿠키가 값은 1로 생성되있는 것을 알 수 있다.


3) 'user_lv' 쿠키의 값을 3 보다 크고 4보다 작은 수로 바꾸고 새로고침을 하면 풀 수 있다.