CISCN 2019 최종 문제 4: UAF 및 Double Free 활용
보호 전략
이 문제에서는 사용자 정의 샌드박스 규칙과 여러 반디버깅 기법을 적용했습니다. 반디버깅을 우회하려면 코드를 NOP 명령어로 대체하면 됩니다.
프로그램 분석
이 문제는 일반적인 메뉴 기반 힙 문제입니다. 하지만 힙 시작 전에 스택에 0xff 크기의 데이터를 입력할 수 있습니다. 이 문제에는 edit 기능이 없으며, UAF 취약점만 존재합니다. 그러나 glibc 버전 ...
6월 27일 17:14에 게시됨
ptmalloc malloc 구현 분석: 동적 메모리 할당의 내부 동작
동적 메모리 할당의 기초
C 언어에서 malloc()과 free()는 런타임 시점에 힙 영역에서 메모리를 할당하고 해제하는 핵심 함수입니다. 언어 사양상 이 함수들이 수행해야 하는 역할은 명확하지만, 그 내부 구현 방식은 특정 메모리 할당기(memory allocator)에 의해 결정됩니다. 예를 들어, 이미 해제된 메모리 영역을 접근하면 미정의 동작(undefined behavior)이 발생하는 ...
6월 21일 17:45에 게시됨
House of Apple 기법을 활용한 glibc 공격
House of Apple은 glibc 2.23부터 최신 버전 2.36까지 사용 가능한 공격 기법이다. 공격 목표는 실행 흐름을 탈취하는 것이다. 활용 조건은 libc 베이스 주소와 힙 주소 누출이 가능해야 하며, 힙 주소를 임의 주소에 쓸 수 있어야 한다(주로 large bin attack 사용). 또한 main 함수 복귀, exit 함수 호출, 또는 __malloc_assert 트리거가 필요하다.
Large Bin Attack 재 ...
6월 14일 01:39에 게시됨