오늘은 webhacking.kr의 old-01₂₀₀문제를 풀어 보도록 할 것이다.
서론없이 바로 문제로 들어가 주자.
level : 1이라는 글과 함께 view source 버튼이 있다.
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보다는 작고, 5보다는 큰 값으로 바꾸어 주면 문제가 풀린다는 점을 알 수 있다.
F12를 누른 후에 Application의 Cookies 탭으로 이동하면, user_lv 쿠키가 1인 것을 확인 가능하다.
이제 user_lv 쿠키를 5에서 6 사이의 아무 수로 바꾸어 주자.
이제 페이지를 새로고침하고, 다시 문제 페이지로 돌아가 주면?
Already solved! 풀렸다.