Webhacking

[Webhacking.kr] old-1번 풀이

aeeazip 2022. 12. 21. 03:11

링크로 들어가면 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>

php 코드에서 반복적으로 등장하는 키워드는 $_COOKIE['user_lv'] 이다.

$_COOKIE['user_l v']는 user_lv라는 이름을 가진 쿠키 값을 의미한다.

 

두번째로 등장하는 php코드의 if문을 확인해보면 다음과 같은 힌트를 얻을 수 있다.

if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;
if($_COOKIE['user_lv']>3) solve(1);

① user_lv의 쿠키값이 4이상이면 1이 된다.

② user_lv의 쿠키값이 3을 초과하면 solve 된다.

$_COOKIE['user_lv'] 는 3 초과 4미만인 값을 가지면 solve 된다는 것!

 

 

 

 

 

해결


[EditThisCookie] 실행    // 크롬 확장 프로그램에서 설치 가능

→ 1로 설정되어 있던 값을 3 초과 4 미만에 해당되는 3.5로 변경 후 저장

→ 새로고침

쿠키값 변경

 

새로고침 후의 결과를 확인하면 level : 3.5 로 변경되어있음을 확인할 수 있다.

결과 화면
 

 

20 point 획득 :D