[pwnable.kr] passcode
passcode.c의 내용이다. bof문제일거라고 생각했는데 아니었다. 소스코드에서 주목할 부분은 1. fflush 2. scanf 이다. 입력버퍼를 비워주는 fflush(STDIN)을 이용한 것으로 보아, 버퍼오버플로우에 대한 문제는 아니다. scanf에서는 주소 연산자 &를 사용하지 않는데, 문제 내용으로 보아 의도적인 취약점이며, GOT Overwrite를 사용할 수 있는 힌트가 되었다. &연산자가 없다는 의미는, %d로 입력하는 정수 값이 그대로 passcode1,2의 주소가 된다는 말이다. 입력해주는 값이 1234라면 그대로 주소가 1234가 된다는 말인데, 주소값을 맘대로 바꿔주려는 시도를 하니까 Segmentation Fault가 나타난다. 원래대로라면 &연산자가 존재하여, 주소 값 변경 없..