1. ๋ฌธ์ ์น ํ์ด์ง
์ฒ์์ผ๋ก ๋์ค๋ ํ์ด์ง๋, input1๊ณผ input2๋ฅผ ์ ๋ ฅํ์ฌ ์ ์ถํ ์ ์๋๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ด ํ์ด์ง ์ด์ธ์ ๋ค๋ฅธ ํ์ด์ง๋ ์๋ค.
input1๊ณผ input2์ ๊ฐ๊ฐ 1์ ์ ๋ ฅํ๊ณ ์ ์ถ ๋ฒํผ์ ๋๋ฌ๋ณด์๋ค.
/check.php ํ์ด์ง๋ก ์ด๋ํ๊ฒ ๋๋ฉด์,
"Try again"์ด๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์ฐ์ฌ์ง ์นํ์ด์ง๊ฐ ๋์จ๋ค.
์ฒ์ ํ์ด์ง (์ ๋ ฅ ํ์ด์ง)
์ ๋ ฅ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋๋ ์นํ์ด์ง
๋ ํ์ด์ง ๋ชจ๋ ์์ค ์ฝ๋์์ ํน์ด์ ์ ์ฐพ์ ์ ์์๋ค.
2. ๋ค์ด๋ก๋ ๋ฌธ์ ํ์ผ
๋ค์ด๋ฐ์ zip ํ์ผ ์์๋ 3๊ฐ์ php ํ์ผ์ด ์๋ค.
โญ check.php
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<title>php7cmp4re</title>
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/">php7cmp4re</a>
</div>
<div id="navbar">
<ul class="nav navbar-nav">
<li><a href="/">Index page</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container">
<?php
require_once('flag.php');
error_reporting(0);
// POST request
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$input_1 = $_POST["input1"] ? $_POST["input1"] : "";
$input_2 = $_POST["input2"] ? $_POST["input2"] : "";
sleep(1);
if($input_1 != "" && $input_2 != ""){
if(strlen($input_1) < 4){
if($input_1 < "8" && $input_1 < "7.A" && $input_1 > "7.9"){
if(strlen($input_2) < 3 && strlen($input_2) > 1){
if($input_2 < 74 && $input_2 > "74"){
echo "</br></br></br><pre>FLAG\n";
echo $flag;
echo "</pre>";
} else echo "<br><br><br><h4>Good try.</h4>";
} else echo "<br><br><br><h4>Good try.</h4><br>";
} else echo "<br><br><br><h4>Try again.</h4><br>";
} else echo "<br><br><br><h4>Try again.</h4><br>";
} else{
echo '<br><br><br><h4>Fill the input box.</h4>';
}
} else echo "<br><br><br><h3>WHat??!</h3>";
?>
</div>
</body>
</html>
check.php ํ์ผ์ ๋ด๊ฐ ์น ํ์ด์ง์ ์ ๋ ฅํ ๊ฐ(input1, input2)์ ์ฒ๋ฆฌํ๋ ๋ก์ง์ด ์ ํ์์๋ค.
if($input_1 != "" && $input_2 != ""){
if(strlen($input_1) < 4){
if($input_1 < "8" && $input_1 < "7.A" && $input_1 > "7.9"){
if(strlen($input_2) < 3 && strlen($input_2) > 1){
if($input_2 < 74 && $input_2 > "74"){
echo "</br></br></br><pre>FLAG\n";
echo $flag;
echo "</pre>";
} else echo "<br><br><br><h4>Good try.</h4>";
} else echo "<br><br><br><h4>Good try.</h4><br>";
} else echo "<br><br><br><h4>Try again.</h4><br>";
} else echo "<br><br><br><h4>Try again.</h4><br>";
} else{
echo '<br><br><br><h4>Fill the input box.</h4>';
}
} else echo "<br><br><br><h3>WHat??!</h3>";
ํนํ ์ด ๋ถ๋ถ์ ๋ณด๋ฉด input1, input2 ๊ฐ์ ์ ๋ ฅํ์ ๋ FLAG ๊ฐ์ด ๋์ค๋ ์กฐ๊ฑด์ ๋ํด ์ ์ ์๋ค.
FLAG ๊ฐ์ ์ถ๋ ฅํ๋ ค๋ฉด,
1. $input_1์ ๊ธธ์ด๊ฐ 4๋ณด๋ค ์์์ผ ํ๋ค.
2. $input_1์ด "8"๋ณด๋ค ์๊ณ , "7.A"๋ณด๋ค ์์ผ๋ฉด์ "7.9"๋ณด๋ค ์ปค์ผ ํ๋ค.
3. $input_2์ ๊ธธ์ด๊ฐ 3๋ณด๋ค ์๊ณ , 1๋ณด๋ค ์ปค์ผ ํ๋ค.
4. $input_2๊ฐ 74๋ณด๋ค ์๊ณ , "74"๋ณด๋ค ์ปค์ผ ํ๋ค.
์ด ์กฐ๊ฑด๋ค ์ค์์ 2๋ฒ๊ณผ 4๋ฒ์ด ์ดํด๊ฐ ๋์ง ์์๋ค.
2๋ฒ์์๋ "7.A"๊ฐ ์ ํํ ์ด๋ค ๊ฐ์ ์๋ฏธํ๋์ง ๋ชฐ๋๊ณ ,
4๋ฒ์์๋ 74๋ณด๋ค ์๊ณ , "74"๋ณด๋ค ์ปค์ผ ํ๋ค๋ ๋ง์ ์ดํด๋ฅผ ๋ชป ํ๋ค.
์ฌ๊ธฐ์๋ถํฐ๋ ๊ตฌ๊ธ๋ง์ ํ๋ฉฐ ๋ฌธ์ ๋ฅผ ํ์ดํ๋ค.
์ด ๋ฌธ์ ๋ php๊ฐ ascii๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ์์ด์ ๋น๊ตํ๋ค๋ ๊ฐ๋ ์ ์ด์ฉํ์ฌ์ผ ํ๋ค.
์๋ฅผ ๋ค์ด, 0123456789abcdefghigklmnopqrstuvwxyz... ์์๋ก ๋น๊ต๊ฐ ๋๋ค๊ณ ํ๋ค.
์์คํค์ฝ๋ ๋ณํ ํ
ascii ์ฝ๋๋ฅผ ๊ธฐ๋ฐํด์ ๋ฌธ์์ด์ ๋์๋น๊ต๋ฅผ ํ๊ฒ ๋๋ฉด,
" 2. $input_1์ด "8"๋ณด๋ค ์๊ณ , "7.A"๋ณด๋ค ์์ผ๋ฉด์ "7.9"๋ณด๋ค ์ปค์ผ ํ๋ค." --> ์ด ์กฐ๊ฑด์ ํด์ํ ์ ์๊ฒ ๋๋ค.
7.9 < input_1 < 7.A๋ฅผ ๋ง์กฑํ๋ input_1์ ๊ฐ์
7.:, 7.;, 7.<, 7.=, ..., 7.@ ๊ฐ ๋ ์ ์๋ ๊ฒ์ด๋ค.
"4. $input_2๊ฐ 74๋ณด๋ค ์๊ณ , "74"๋ณด๋ค ์ปค์ผ ํ๋ค."๋ฅผ ํด์ํ์๋ฉด,
๋ฌธ์์ด "74"๊ฐ ascii ์ฝ๋๋ฅผ ๊ธฐ๋ฐํ์ฌ ์ญ์ง์ ๋ณํํ๋ฉด ์ซ์ 5552๊ฐ ๋๋ ๊ฒ์ ์ ์ ์๋ค.
๋ค์ ์กฐ๊ฑด์ ๋ณต๊ธฐํ์๋ฉด,
1. $input_1์ ๊ธธ์ด๊ฐ 4๋ณด๋ค ์์์ผ ํ๋ค.
2. $input_1์ด "8"๋ณด๋ค ์๊ณ , "7.A"๋ณด๋ค ์์ผ๋ฉด์ "7.9"๋ณด๋ค ์ปค์ผ ํ๋ค.
3. $input_2์ ๊ธธ์ด๊ฐ 3๋ณด๋ค ์๊ณ , 1๋ณด๋ค ์ปค์ผ ํ๋ค.
4. $input_2๊ฐ 74๋ณด๋ค ์๊ณ , "74"๋ณด๋ค ์ปค์ผ ํ๋ค.
์ด์๋๋ฐ,
input_1์ด ๋ ์ ์๋ ์ ๋ ฅ๊ฐ์: [๊ธธ์ด๊ฐ 4๋ณด๋ค ์์์ผ ํจ] + [7.:๊ณผ 7.@๋ฅผ ํฌํจํ๋ ์ฌ์๊ฐ]
input_2์ด ๋ ์ ์๋ ์ ๋ ฅ๊ฐ์: [๊ธธ์ด๊ฐ 1๋ณด๋ค ํฌ๊ณ 3๋ณด๋ค ์์์ผ ํจ] + [74๋ณด๋ค ์๊ณ 5552๋ณด๋ค ์ปค์ผ ํ๋ค]
์์ ์กฐ๊ฑด์ ๋ฐ๋ผ input_1์ 7.:
input_2์ :: ๋ฅผ ๋ฃ์ด์ ํ์ด๋ณด์๋ค.
ํ๋๊ทธ๋ฅผ ํ์ธํ ์ ์์๋ค.
์ ๋ต!
์ฐธ๊ณ
'SWLUG > CTF ๋ฌธ์ ํ์ด (2)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Dreamhack/๋๋ฆผํต] baby-union (0) | 2024.05.08 |
---|---|
[Dreamhack/๋๋ฆผํต] PHPreg (0) | 2024.05.07 |
[Dreamhack/๋๋ฆผํต] Carve Party (0) | 2024.04.01 |
[Dreamhack/๋๋ฆผํต] devtools-sources (0) | 2024.03.30 |
[Dreamhack/๋๋ฆผํต] session (0) | 2024.03.24 |