완료됨
취약점

Line 8이 취약한 이유가 궁금합니다...ㅜㅜ

#시스템해킹
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
Pocas
워게임 고인물

int의 최대값은 2^31-1= 2147483647 입니다. length의 값으로 0x7fffffff(2147483647)를 주게 되면 0x7fffffff + 1로 int의 최대값을 초과해 음수로 변하게 됩니다. 음수로 변하면서 2번째 조건도 거짓이기 (첫 번째 값도 당연 거짓) 때문에 무사히 조건문을 통과하게 되고, 밑에서 read 함수를 이용해서 0x7fffffff만큼의 입력을 받을 수 있습니다. 힙에 크기는 0x8000으로 32768인데 0x7fffffff(2147483647)만큼 입력을 할 수 있기 때문에 힙 오버플로우가 발생합니다.

2020.11.15. 21:44