학회_공부해요/워게임

[Dreamhack] Write up - set-int

yenas0 2024. 1. 23. 04:56
반응형

https://dreamhack.io/wargame/challenges/958

 

set-int

Description 주어진 바이너리와 소스 코드를 분석하고 알맞은 입력값을 찾아 쉘을 획득하세요! 플래그는 flag 파일에 있습니다. 플래그의 형식은 DH{...} 입니다.

dreamhack.io


문제 파일 열어보니까 .c파일이랑 들어있기래 열어서 솔루션 빌드 먼저 하려고했더니..

 

 

헤더파일이 없단다..

 

 

 

검색해봤는데 리눅스에서 쓰는 것 같다. 그래서 리눅스에서 nc로 열었더니

 

이렇게 input할 수 있게 된다.

 

 

 

일단 코드 분석을 해서 input에 맞는 값을 먼저 찾아야될거같다.

 

 

 

 

a 값은 (int)a + 1했을 때 0이 되는 값이니까 -1로 해봤는데 맞았다.

 

 

 

 

 

 

두번째 입력값인 b를 찾아야 되는데

 

코드 보니까 b가 1보다는 작으면서 1을 뺐을 때 0보다 커야 된다함. 대체 그런수가 어딨는지? 이랬는데 설마 int범위 벗어나면 오버플로우 때문에 가능하려나 싶어서 1보다 작은 수로 int 범위에서 벗어나도록 값을 입력해봤다.

 

 

 

(시간제한 있으니까 빨리쳐야될듯..?)

 

 

입력하니까 맞았나보다. 명령어를 입력했을 때 인식이 된다.

 

 

 

 

명령어를 입력해서 flag값을 찾아냈다.

반응형