<OOO>

[HackCTF] Time 문제풀이 본문

Wargame

[HackCTF] Time 문제풀이

<OOO> 2020. 8. 24. 17:25

728x90

time 이라는 변수에 최소 5,184,000 초 이상 7,776,000초 미만을 넣으면 넣은 시간만큼 sleep이 작동 한 후 flag를 출력해준다.

여기에서 취약점이 터지는 부분은 sleep((int)$_GET['time']); 부분이다.

 

정상적인 소스이고, 취약점이 터지는 함수는 안보이는것 같은데... 라고 생각을 할 수 있으나, int형으로 변환을 하는 부분에서 취약점이 발생한다.

 

이 문제를 해결하는 방법은 5184000초를 지수형태로 입력을 하게 된다면 첫번째 is_numberic 함수에서는 통과가 된다.

그리고 11번째 라인에서 int로 변환할 때, 소수점이 있는 값일 경우 소수점을 버리게 되므로 문제가 짧은 시간 내에 풀리게 된다.

 

즉, 5184000초를 지수로 변환을 하면 풀린다는 것이다.

지수 값은 5.184e+6이 된다. 이 값을 넣으면 풀린다. (소수점 뒤에 버려서 통과가 되므로 5초정도 기다려야 flag가 나옴)

 

지수를 어떻게 변환하는지 모르겠으면 이 사이트를 참고하자.

http://mwultong.blogspot.com/2008/01/exponential-scientific-notation-convert.html

 

 

'Wargame' 카테고리의 다른 글

[HackCTF] Home 문제풀이  (0) 2020.08.24
[HackCTF] Input Check 문제풀이  (0) 2020.08.24
[HackCTF] 마법봉 문제풀이  (0) 2020.08.24
[HackCTF] Login 문제풀이  (0) 2020.08.24
[HackCTF] Read File 문제풀이  (0) 2020.08.24
Comments