
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']>=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>
< 핵심 >
user_lv cookie 값이
6보다 크거나 같으면 cookie 값이 1이 되고,
5보다 크면 문제가 풀린다.

쿠키 변조를 하기 위해서 크롬에서 EditThisCookie 확장 프로그램을 설치해야 한다.
https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ko
EditThisCookie
EditThisCookie는 쿠키 관리자입니다. 이것을 이용하여 쿠키를 추가하고, 삭제하고, 편집하고, 찾고, 보호하거나 막을 수 있습니다!
chrome.google.com
설치가 끝나면,
우측 상단에 쿠키 아이콘이 보이는데..
이 쿠키를 누르면 쿠기의 이름과 값에 대한 정보를 알 수 있다.
물론, 변조도 가능하다!

다시 문제로 돌아가서!
아까 view-source 핵심 코드만 다시 보면
<?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']}";
?>
5 < user_lv cookie 값 < 6 정도로 쿠키 값을 변조하면 해결될 것 같은 느낌이다!
해보자!

쿠키 값을 5.1로 변경하고, 초록 V 버튼을 누른다.
F5로 창을 새로고침한다.

성공했다는 알림이 함께 뜬다!

오예!
'War Game > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr : challenge(old) 18번 풀기 (0) | 2019.11.13 |
---|---|
Webhacking.kr 리뉴얼 : 회원 가입 (0) | 2019.09.25 |