완료됨
취약점
Line 8이 취약한 이유가 궁금합니다...ㅜㅜ
#시스템해킹
작성자 정보
답변
1
Pocas
워게임 고인물
int의 최대값은 2^31-1= 2147483647 입니다. length의 값으로 0x7fffffff(2147483647)를 주게 되면 0x7fffffff + 1로 int의 최대값을 초과해 음수로 변하게 됩니다. 음수로 변하면서 2번째 조건도 거짓이기 (첫 번째 값도 당연 거짓) 때문에 무사히 조건문을 통과하게 되고, 밑에서 read 함수를 이용해서 0x7fffffff만큼의 입력을 받을 수 있습니다. 힙에 크기는 0x8000으로 32768인데 0x7fffffff(2147483647)만큼 입력을 할 수 있기 때문에 힙 오버플로우가 발생합니다.