본문 바로가기

HackCTF/web

HackCTF - Time

 

이 문제는 도저히 어떻게 풀어야하는지 모르겠어서 롸업을 봤다

 

링크를 들어가면 소스코드가 나온다

 

<?php
$flag = "???";
if(isset($_GET['time'])) {
    if(!is_numeric($_GET['time'])) {    
        echo '시간은 숫자만 됩니다!';
    } else if($_GET['time'] < 60 * 60 * 24 * 30 * 2) {
        echo '시간이 너무 짧습니다!'; 
    } else if($_GET['time'] > 60 * 60 * 24 * 30 * 3) {
        echo '시간이 너무 깁니다!';
    } else {
        sleep((int)$_GET['time']);
        echo "flag is ",  $flag;
    }
    echo '<hr>';
}
?>

 

 

if문 부터 else if 를 통과하기 위해

 

60 * 60 * 24 * 30 * 2 = 5184000

 

5184000을 지수형태(5.184000e6)으로 입력하면 else 로 넘어가게 되고

 

int이기 때문에 뒤에 소수점은 사라져 5초만 기다리면 플래그가 나온다

 

 

신기했던 문제였다

 

 

'HackCTF > web' 카테고리의 다른 글

HackCTF - Home  (0) 2021.07.11
HackCTF - input check  (0) 2021.07.10
HackCTF - 마법봉  (0) 2021.07.09
HackCTF - login  (0) 2021.07.09
HackCTF - Read File  (0) 2021.07.09