#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 |