워게임/247CTF

[247CTF] AN IMPOSSIBLE NUMBER - MISC / 정수 오버플로우 / C

SecurityMan 2023. 10. 1. 11:00

 

247CTF 에서 제공하는 EASY 난이도의 MISC 문제

 

MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다.

 

반응형

 

IMPOSSIBLE NUMBER 라고 하는것을 보니

 

정수 오버플로우와 관련되었음을 직감할 수 있다.

 

예전에 비슷한 문제를 다뤘었다.

(https://hackingstudypad.tistory.com/619)

 

 

문제에서 제공되는 C 코드는 이렇다.

 

impossible_number 를 입력받는데

 

impossible_number 이상이고,

 

impossible_number 가 impossible_number + 1 보다 커야한다는 조건이 걸려있다.

 

상식적으로 이런 숫자는 없지만

 

 

C언어의 int형을 사용하기 때문에

 

이 문제는 아주 쉽게 해결할 수 있다.

 

int 형의 경우 표현할 수 있는 정수의 범위가 한정되어 있기 때문이다.

 

2,147,483,647 이 최대값이고,

 

여기에 1을 더하면 가장 낮은 값인 -2,147,483,648 이 되어버린다.

 

 

제공된 주소에 nc를 이용해 원격으로 접속한 뒤

 

2147483647 을 입력하면

 

플래그가 출력되는것을 확인할 수 있다.

반응형