문제 설명
두 개의 input값을 입력할 수 있는 탭과 상단 index page가 눈에 띈다.
index page는 클릭해도 별다른 변화가 있진 않고, input값에 임의의 숫자를 넣어 제출해 보니
이렇게 다시 하라는 메시지만 표시된다.
이때 index page를 클릭하니 다시 초기 화면으로 이동한다.
문제에 첨부되어 있는 파일은 총 3개였다.
flag.php와 index.php 파일은 문제 풀이에 있어 그닥 중요한 내용은 아닌 것 같다.
check.php의 마지막 부분에 있는 조건문이 중요한 것 같으니 구체적으로 살펴 보았다.
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;
우선 input_1의 길이는 4 미만이다.
또한 input_1은 문자열 '7.A'보다 작으며, 문자열 '7.9'보다는 크다.
'7.9' < input_1 < '7.A'
문자열 7.9를 십진수로 바꿔주면 55 46 57이고 7.A를 십진수로 바꿔주면 55 46 65이다. 두 수 사이의 임의의 수인 55 46 60을 다시 문자열로 변환해 보면 7.<이 나온다. (이외에도 55 46 58을 변환한 7.<, 55 46 63을 변환한 7.?도 가능한 것으로 확인됐다.)
input_2는 숫자 74보다는 작고 문자열 '74'보다는 크다.
'74' < input_2 < 74
문자열 74를 십진수로 변환하면 55 52라는 값이 나온다. 74와 55 52 사이 임의의 값인 58 59을 문자열로 변환해 보면 :;이 나온다.
각각의 input값을 입력해 보면
위와 같이 플래그가 발견된다.
'SWUFORCE > 워게임 풀이' 카테고리의 다른 글
[Dreamhack] devtools-sources (web) (0) | 2024.05.14 |
---|---|
[Dreamhack] phpreg (web) (0) | 2024.05.07 |
[Dreamhack] Carve Party (web) (0) | 2024.05.01 |
[Dreamhack] simple-web-request (web) (0) | 2024.05.01 |
[Dreamhack] Flying Chars (0) | 2024.04.02 |