bobctf bof write up
2018. 2. 12. 21:21
2018년 2월 12일 취약점트랙 bobctf bof 문제 write up
BoB 6기 취약점 트랙 윤석찬
오랜만에 주창이마냥 쉽고 빠르게 푼 문제라서 기분이 좋다. ㅋㅋ
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 |