링크로 들어가면 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
'Webhacking' 카테고리의 다른 글
[Webhacking.kr] old-12번 풀이 (0) | 2022.12.21 |
---|---|
[Webhacking.kr] old-19번 풀이 (0) | 2022.12.21 |
[Webhacking.kr] old-24번 풀이 (0) | 2022.12.21 |
[Webhacking.kr] old-17번 풀이 (0) | 2022.12.21 |
[Webhacking.kr] old-10번 풀이 (0) | 2022.12.21 |