728x90

[문제]

https://webhacking.kr/chall.php

 

Webhacking.kr

 

webhacking.kr


[문제 풀이]

<?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
  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 이상이면 1로 초기화된다.
  • user_lv 값이 3보다 크면 solve(1) 함수가 실행된다.
  • solve(1) 함수는 문제를 해결하거나 상태를 변경하는 함수일 가능성이 클 것이다.

→ user_lv 값은 3보다 크고 4보다 작은 숫자가 들어가야 한다고 생각했습니다.

  • 그래서, 쿠키 값을 3과 4 사이에 값을 입력했습니다.
  • 그 결과, 문제를 해결할 수 있었습니다!

'보안 > CTF' 카테고리의 다른 글

[Webhacking.kr] old-17 write-up  (0) 2024.12.22
[웹해킹] | [LOS] Gremlin write up  (0) 2024.12.01
[웹해킹] | [LOS] Goblin write up  (0) 2024.12.01
[웹해킹] | [LOS] Cobolt write up  (0) 2024.12.01
[Tryhackme] OhSINT  (0) 2024.11.24

+ Recent posts