이 문제는 도저히 어떻게 풀어야하는지 모르겠어서 롸업을 봤다
링크를 들어가면 소스코드가 나온다
<?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 |