Heap poison NULL byte 공격 이해


Heap poison NULL byte 공격 이해

미리 알아둘 것 ptmalloc2에서의 heap에 대한 구조 Off-by-One 공격에 대한 이해 (적어도 C언어에서 n 바이트 문자열을 다룰 때 n-1 바이트까지만 입력받도록 해야 NULL 바이트(1바이트 크기)까지 고려가 가능한데 이걸 잘못하면 1바이트 오버플로우가 나서 버그가 난다는 이야기를 이해할 정도) 이번에는 heap 영역에서 의도치 않게 추가로 1바이트의 NULL(2진수로 숫자 "0"에 해당하는 값)을 추가로 넣어서 heap의 구조를 망가뜨리는 Heap poison NULL byte라는 공격에 대한 간단한 예제를 살펴봅니다. 이러한 공격은 Off-by-One 형태의 공격 또는 (프로그래머의 실수로 인한) 버그가 메모리의 heap 영역에서 발생한 유형이라고 볼 수 있는데, 이것이 ptmalloc2의 memory chunk구조와 맞아떨어지면서 memory chunk 구조 자체를 오염시키거나 망가뜨릴 수 있는 심각한 문제로 발생하게 됩니다. Python이나 C++처럼 문자열에...


#C #실습 #메모리 #동적 #간단함 #read #ptmalloc2 #overflow #off_by_one #ofb #NULL #heap_poisoning #heap #GDB #Clang #취약점

원문링크 : Heap poison NULL byte 공격 이해