DawgCTF 2021의 Bofit 문제다. elf 파일인 bofit과 c언어 소스 코드인 bofit.c가 주어져있다. bofit 파일을 우분투에서 실행해보면 다음과 같은 문구가 나온다. 문구를 읽어보면 "BOF it!"이 출력될 시 'B'를 입력, "Pull it!"이 출력될 시 'P'를 입력, "Twist it!"이 출력될 시 'T'를 입력, 'Shout it!"이 출력될 시 최소 10글자를 입력하라고 한다. 보호기법을 확인해본 후 소스 코드를 보면서 취약점을 찾아보겠다. 보호기법은 Partial RELRO만 걸려있는 것을 볼 수 있다. #include #include #include #include #include #include void win_game(){ char buf[100]; FILE* ..
DawgCTF 2021
DawgCTF 2021의 Two Truths and a Fib 문제다. "fibber를 잡을 수 있겠나?"라고 적혀 있다. 문제 이름을 직역한다면 2개의 진실과 한 fib(피보나치 수를 의미한다)다. 주어진 서버로 접속하면 위 사진과 같은 문구들이 출력된다. 해석해보면 3개의 정수가 주어지는데, 이 수들 중 피보나치 수를 찾아서 입력하는 것이다. 예제로 12, 8, 4가 주어졌는데, 실전에 주어지는 수들을 보면 길이가 장난 아니다.... 게다가 시간 제한까지 있어서 확실한건 손으로는 절대 못풀것 같다. 따라서 pwntools를 이용해서 자동화해 피보나치를 구별하고 입력을 준다면 flag를 얻을 수 있을 것이다.(취약점을 이용한 exploit이 아닌 이상..) 자동화 과정은 다음과 같다. 1. [, , ]..