write-up(pwn)
[G04T] Simple BOF 3
문제의 c 소스 코드입니다. ioManager라는 구조체가 생성됩니다. 문자형 배열 buf와 문자열 포인터를 인자로 가지는 함수 포인터 printer를 가지고 있습니다. vuln() 함수에서 ioManager 구조체 변수 io를 선언합니다. 무한루프 안에는 메뉴를 보여주는 printMenu() 함수가 실행되고 변수 choice에 양의 정수를 입력 받아 각 번호에 맞는 기능을 수행합니다. 1번 기능은 io의 buf에 적힌 문자열을 출력해줍니다. 2번 기능은 io의 buf에 문자열을 적을 수 있습니다. 그 외 나머지 값이 입력되면 무한루프를 빠져나갑니다. 보호 기법을 확인해줍니다. 카나리가 설정되어 있는 것 외에 특별한 건 설정되어 있지 않습니다. gdb로 vuln() 함수를 디스어셈블 해봅니다. 을 보면 ..