Security/Pwnable

[Dreamhack] bof

SpruceMoon 2026. 3. 30. 23:02

제목부터 버퍼오버플로우문제라고 광고 중이다.

실행해보면 

웬 고양이가 뮤뮤거리며 나를 반겨준다. (귀엽다)

 

파일에 따로 C파일이 없어서 마찬가지로 IDA로 디컴파일해서 보자.

보면 scanf에서 최대로 144바이트까지의 값을 받고 있는 것을 확인할 수 있다.

근데 v4 배열은 128바이트 크기를 가지고 있다! 거기에 v4를 입력받은 다음 바로 v5 변수가 사용되므로, v4 값을 버퍼오버플로우로 넘치게 만들면 v5 변수의 내용을 내가 원하는 대로 덮어쓸 수 있겠다.

 

또한 flag는 /home/bof/flag 에 있다고 했으므로 v5 영역에 들어갈 값이 바로 저 위치 문자열이 될 것이다.

이를 바탕으로 익스플로잇 코드를 작성해보자.

아까 전에 쓴 코드보다 더 쉽다. 살짝만 수정해서 오버플로될 곳에 주소가 들어가도록 만들었다.

 

플래그가 출력되었다! :D

 

여담이지만, 시스템해킹 기초 워게임들은 공식이 있는 것 같다.. 버퍼오버플로우문제일 경우만!

파일을 본다 > IDA를 돌려서 디컴파일시킨다 > 바이트 크기를 계산한다 > 얼마나 오버플로시킬지 본다 > 함수의 주소를 찾는다 > 익스플로잇 코드를 쓴다 > 돌린다 

이러면 풀리는 것 같다.ㅎㅎ

'Security > Pwnable' 카테고리의 다른 글

[Dreamhack] Return Address Overwrite  (0) 2026.03.30
[Dreamhack] Basic_exploitation_001  (0) 2026.03.30
[Dreamhack] baby-bof  (0) 2026.03.16
[Dreamhack] shell_basic  (0) 2026.03.16
[Dreamhack] welcome  (0) 2026.03.16