#Main

 - 두번째 조건문에 60*60*24*30*2보단 커야한다고 한다.

 -> 5184000

 

 - 모든 조건을 충족하면 해당 숫자만큼 기다린 후 flag를 출력하는데, 5184000초를 기다릴리는 없으므로

   is_numeric 함수의 취약점을 찾아본다.

 

 

#is_numeric() 취약점

 - 헥스값은 대입 시 첫번째 조건에서 걸리므로, 상위 버전을 찾아보았는데

   '1337e0' is numeric이라는 문구가 보인다. 즉, 10의 거듭제곱을 사용가능하다.

 

 참고자료 : https://www.php.net/manual/en/function.is-numeric.php

 

#source code

 - 먼저 5184000을 e를 사용해 바꿔준다.

   5184000/(10*6) = 5.184이므로, 5.184e6이다.

 

   소스코드를 보면, 위의 if문에서 검사를 하고,(5.184e6 = 5.184000)

   마지막 else문에서 (int)로 강제 형변환을 한다.(5.184e6 = 5)

   즉, 5초를 기다리면 플래그가 출력될 것이다.

 

#end

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

HackCTF Home - [200]  (0) 2021.08.30
HackCTF Input Check - [150]  (0) 2021.08.29
HackCTF 마법봉 - [100]  (0) 2021.08.28
HackCTF Login - [100]  (0) 2021.08.26
HackCTF ReadFile - [100]  (0) 2021.08.25

+ Recent posts