이번 시간에는, 동적 메모리 할당과 해제를 하는 부분에서, 32바이트 ~ 1,024바이트 사이에 해당하는 free memory chunk들이 들어가는 tcache에 대해 Double Free 취약점에 대해 살펴봅니다. 메모리를 괴롭혀 보세요.
그것은 매우 좋습니다! Double Free란, 말 그대로 (같은 메모리 영역에 대하여) 두 번 해제하는 것을 말합니다.
그러니까, 이런 식으로 코드를 짜고 돌리면 Double Free Bug가 발생합니다. free(ptr); free(ptr); // what the fuck? 그러나 개발자로써는 다행스럽게, ptmalloc2는 최소한의 보안 장치는 가지고 있기 때문에, double free를 시도할 시, 내부 검사 매커니즘에 의하여 감지하고, free()가 또 시행되기 전에 Aborted(강제 중단) 명령을 내려 운영체제 수준에서 프로그램을 강제 종료하게 만듭니다. // Name: dfb.c // Compile: gcc -o dfb dfb.c...
#
C
#
더블프리버그
#
리스트
#
메모리
#
버그
#
분석
#
쉬운이해
#
시큐어코딩
#
예제
#
우회
#
더블프리
#
구조체
#
tcache
#
C언어
#
df
#
double_free
#
fastbin
#
fd
#
free
#
malloc
#
next
#
ptmalloc2
#
취약점
원문 링크 : tcache에서의 Double Free Bug 이해