3

HertBeat 사건에서 문자와 그 문자의 길이를 넘어서는 문자 길이에 대한 정보를 서버에 주었을때에 대한 질문입니다.

지문을 통해 클라이언트가 theori와 문자의 길이가 3000이라는 정보를 서버에 보내면 theori가 저장된 위치로 부터 3000개의 문자를 알 수 있다는 것은 알겠습니다. 하지만 여기서 궁금한것이 3000개의 문자가 저장될 공간이 할당되어 theori라는 6개의 문자와 나머지 2994개의 쓰래기 값이 생성되지 않고 theori 다음의 문자를 읽어오는 이유가 궁금합니다

답변 1개
4

쓰레기 값이 올수도 있고 안 올수도 있습니다. 메모리에 데이터가 어떻게 저장되어 있느냐에 따라 다르겠죠. 예를 들면 메모리의 2번 주소에 theori가 저장되어 있고 그 다음 주소에는 다른 민감한 정보가 저장되어 있을 수도 있죠. theori가 저장되어 있는 주소 다음에 아무런 값도 안 쓰여 있을 수도 있고요. 하지만 해당 취약점이 존재하는 이상 해커는 입력값을 바꾸거나, 문자열을 바꿔가면서 중요한 정보가 언제 나오는지 알아내 정보를 빼내올 수 있습니다.