1️⃣ DreamHack Web Beginner_php7cmp4re
📜문제확인
드림핵 사이트에서 문제 확인
서버 오픈 후 접속하면 아래와 같이 id / pw 입력하는 부분 확인가능
문제파일 다운후 코드 확인 가능
<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>
- 코드중간에 php 코드로 input1, input2 값을 post 로 전달시 if 문 조건들이 있음
📜풀이
코드에서 input1, input2 에 대한 if 조건 충족 시켜야 함
input_1의 문자 길이는 4글자 미만이고 7.9랑 7.A 숫자 사이라서 7.9를 십진수로 바꿔주면 554657~554665이니까 그 사이 숫자인 554658을 아스키코드로 바꿔준다. 그러면 7.:가 나온다.
input_2의 문자 길이는 2글자이고 74초과 문자열 74미만으로 십진수로 바꿔주면 74~5552이고 사이의 숫자를 아스키코드로 바꿔주면 :;가 나온다.