https://webhacking.kr/challenge/web-01/
<?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>
ํด๋น ์์ค๋ฅผ ๋ณด๊ณ ์กฐ์ํ๋ฉด ๋๋ค.
๋๋ถ๋ถ Post ๋ฐฉ์์ผ๋ก์ ์กฐ์์ผ๋ก ์น์์ ๋ฐ์ดํฐ๋ฅผ ๊ธ์ด์ค๋ ๊ฒฝ์ฐ๋ ์์ผ๋ฏ๋ก
GET๋ฐฉ์์ ์ด๋ค. ์ฆ body๋ฅผ ๊ฑด๋๋ ค์ผํ๋ค.
์ด๋ฒ์ ์ฐ๋ฆฌ๋ Cookies ๊ฐ์ ๊ฑด๋๋ฆด ๊ฒ์ด๋ค.
์ผ๋จ ํฌ๋กฌ์ ์ฌ์ฉํ๋ค๋ฉด Cookie Editor ํ์ฅํ๋ก๊ทธ๋จ์ ์ค์นํ๋ ๊ฒ์ด ์ข๋ค (๋งํฌ ์ฐธ๊ณ )
https://chrome.google.com/webstore/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm?hl=en
๊ตณ์ด ์์ฐ๋๋ผ๋ ๊ฐ๋ฅํ๋ค. ํ์ง๋ง ์์ค๋ฅผ ๋ด์ผํ๊ธฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ ๋์๊ฐ๋ฉฐ ๋ณด!
๊ธฐ์๋ ๋ถํธํ๋ ๋ค์ด ๋ฐ๋๊ฒ ํธํ๋ค.
ํ์๋ ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ ์ข์ํ๊ธฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค.
๊ฐ๋ฐ์ ๋๊ตฌ๋ F12๋ฒํผ์ ๋๋ฌ์ ์ผค ์ ์๋ค.
๊ฐ๋ฐ์ ๋๊ตฌ์๋ Document, console, source๋ฑ๋ฑ์ด ์๋๋ฐ ์ฐ๋ฆฌ๋ ์ด์ค์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ cookie๋ฅผ ์กฐ์ํ ๊ฒ์ด๋ค.
ํด๋น ์ฌ์ง์์ ์ฒ๋ผ application(์ ํ๋ฆฌ์ผ์ด์
)์ ๋ค์ด๊ฐ์ ์ข์ธก ์ ๋ณด์ด๋ ์ฟ ํค(cookies)๋ฅผ ๋ณธ๋ค.
ํด๋น ์ฌ์ดํธ https://webhacking.kr ์ ์ ์กํ๊ณ ์๋ cookies๊ฐ ๋ณด์ธ๋ค.
ํด๋น cookies ๋ PHPSESSID์ user_lv๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ ์ด๋
PHPSESSID ๋ ๊ฐ์ธ ๋ฑ๋ก๋ฒํธ๋ผ๊ณ ์๊ฐํ๊ณ ์ฐ๋ฆฌ๊ฐ ์ค์ํ๊ฒ ๋ณผ ๋ถ๋ถ์ user_lv๋ค.
์์ ์์ค๋ฅผ ๋ค์ ํ ๋ฒ ๋ณด์๋ฉด
<?php1
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>
<?php2
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๊ฐ ์๋๋ฐ ์ด๋ ๊ฐ๋จํ๊ฒ ์๋ฒ์ฉ ์คํฌ๋ฆฝํธ ์ธ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
html์์ ๋ณด์ด๋ ์คํฌ๋ฆฝํธ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ์ด๊ณ , ์๋ฒ์์ ์ฌ์ฉ๋๋ ์คํฌ๋ฆฝํธ๋ PHP์ด๋ค.
์ด๋ฅผ ์ฃผ์์ฒ๋ฆฌ๋ ์ด์ ๋ PHP๋ ์๋ฒ ์คํฌ๋ฆฝํธ๊ธฐ์ ๊ฐ๋ฐ์๋๊ตฌ๋ก ๋ณผ ์ ์๋ค.
ํด๋น ์์ค์์๋ ์ฌ์ฉ์์ ํธ์๋ฅผ ์ํด ์ ๊ณตํ ๊ฒ์ด๋ค.
๊ฐ์คํ๊ณ ์ฝ๋๋ฅผ ์ค๋ช
ํ๋ฉด
php 2๋ฅผ ๋ณด์ ์กฐ๊ฑด๋ฌธ์ด ์๋ค.
ํด๋น ์ฝ๋๋ฅผ ์ดํดํ๋ฉด 3๋ณด๋ค ํฌ๋ฉด ํด๊ฒฐ์ด ๋๋๋ฐ 4๋ณด๋ค ํฌ๋ฉด 3๋ฒ์งธ ์กฐ๊ฑด์ด ์คํํ๊ธฐ ์ ์ 1๋ก ์ด๊ธฐํ ๋๋ค.
์ฆ, 3๋ณด๋ค ํฌ๊ณ 4๋ณด๋ค ์์ ์ด๋ '์'๋ฅผ ์ง์ด๋ฃ์ผ๋ฉด ๊ฐ๋ฅํ๋ค.