write-ups/CTF

bobctf bof write up

2018. 2. 12. 21:21

2018년 2월 12일 취약점트랙 bobctf bof 문제 write up 

BoB 6기 취약점 트랙 윤석찬 



bof


오랜만에 주창이마냥 쉽고 빠르게 푼 문제라서 기분이 좋다. ㅋㅋ

Analyse

 

 바로 IDA로 까보면 다음과 같이 나온다. 


메뉴를 출력하고, 출력한 메뉴를 atoi로 int형으로 만든 후, if 문으로 각 메뉴 번호에 맞는 것을 출력해준다. 

해당 코드에서 scanf()에서 취약점이 터지며, 어느 정도까지 받을지 정하지 않았기 때문에 취약점이 발생한다. 


 보통 이렇게 쉬운 문제에는 shell을 띄우는 함수가 미리 만들어져 있다. shift + f12 를 누르니, /bin/sh라는 문자열이 있는 것을 보아선 있는 것을 확인 가능하다. 



Exploit

 일단 atoi를 우회해야 한다. atoi로 int형으로 바꾼 다음, 메뉴에 없다면 exit(1) 하는 구조이기 때문에 필수적으로 atoi를 우회해주어야 한다. 이 경우, 그저 payload 앞 4바이트를 1\x00\x00\x00 로 채우는 것으로 우회할 수 있다. 


그냥 빨리푸려고 buffer를 계산하지 않고, payload += p32(shell) * 100 을 하였다. 



Flag : FLAG{Simpl3_buffer_overflow_!@#}


'write-ups > CTF' 카테고리의 다른 글

코드게이트 2018 본선 진출  (0) 2018.02.15
bobctf cmd write up  (0) 2018.02.12
bobctf ccc write up  (0) 2018.02.12
codegate 2016 miccheck  (0) 2018.02.11
codegate 2018 write up  (0) 2018.02.07