Processing math: 100%

Web - Time

HelloMG
|2020. 1. 31. 15:06

Time 문제

문제로 들어가면 php 문이 나옵니다!

 

3가지 조건이 있네요 :D

1. 시간은 숫자만 됩니다!

2. 시간이 너무 짧습니다!

3. 시간이 너무 깁니다!

 

그럼 위의 시간을 계산해 봅시다!

60*60*24*30*2 = 5,184,000‬

60*60*24*30*3 = 7,776,000‬

 

사이의 시간을 넣으면 풀릴까 해서 넣어봤습니다 !

 

5184001

5184001을 넣으면 어떻게 될까요?

11번째 줄 sleep 함수로 인해 5184001초를 기다려야 flag가 출력이 됩니다 : (

그 때까지 기다리기엔 무리가 있겠죠..?

그럼 어떻게 풀어 나가야할까요 ㅇㅅㅇ?

 

4번줄is_numeric 함수가 보이시나요 :D

is_numeric 함수는 변수가 숫자인지 아닌지를 판단을 해주는 함수입니다!

https://www.php.net/manual/de/function.is-numeric.php

 

PHP: is_numeric - Manual

If you want detect integer of float values, which presents as pure int or float, and presents as string values, use this functions: PHP_INT_MAX) {        return false;    }    return is_float(val)?false:pregmatch( ((?:\+|)?[09]+)~', $val);}funct

www.php.net

자세한건 php 정식 사이트에서 보시기 바랍니다 :D

 

위의 사이트에서 보면

지수형태도 True로 반환되는거 보이시나요 :D

 

그리고 11번째 줄에서 sleep 함수 안에 int로 형변환되는 것을 본다면 "지수형태로 보내면 되겠구나!" 생각이 들겠죠?

왜냐하면 int형으로 인해서 뒤의 소수점이 다날라가버리기 때문이죠 :D

 

그럼 어떻게 보내줘야 할까요!

"5.184001E+6"

을 입력하게되면 flag가 5초후에 등장하게 될겁니다 :D

왜냐하면 6,8번 째 줄은 지수형으로 나타내서 5184001이 되어 통과하게 되고

11번째 줄에선 int 형변환으로 인해 5.184001E+6 => 5로 변환되기 때문이죠 :D

 

그럼 다음 문제에서 뵙도록 하겠습니다!

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

Web - Cookie  (0) 2020.02.07
Web - 가위바위보  (0) 2020.02.03
Web - 마법봉  (0) 2020.01.23
Web - Read File  (0) 2020.01.21
Web - Guess me  (0) 2020.01.20