LOB nightmare -> xavius
코드를 보면 buffer에 fgets함수를 통해 256바이트만큼 표준입력을 받는다.gdb를 통해 보면 buffer의 주소는 ebp-40이다.따라서 buffer+47의 ret주소의 최상위바이트이다.이 최상위 바이트가 '\xbf', '\x08'이 되면 함수가 종료된다.즉 스택이나 data, bss, dtors 섹션 등을 이용 할 수가 없다. 이제 남은 곳은 힙 부분과 memset에서 제외된 buf-40 ~ buf까지 40byte이다.근데 buf는 스택부분이라 \xbf로 주소가 시작한다.따라서 힙 부분에서 쓸만한 곳을 찾아야한다. 코드를 보면 fgets함수에서 stdin 표준스트림을 이용해서 입력을 받는다.표준 입력을 받을때는 read함수를 이용해 엔터를 칠때까지 임시입력버퍼에 저장을 해놓고 buffer에 저..