main_arena는 heap영역에서 해제된 청크가 Unsorted bin에 처음 등록될때 FD와 BK가 가리키고 있는 영역이다.
Use After Free와 같은 취약점을 이용해서 일부러 해제시킨 청크를 그대로 다시 할당하면 FD와 BK가 적힌채로 돌아오는데, 이때 FD와 BK가 main_arena+xx 위치를 가리키고있다. 이때 main_arena의 offset을 이용해 libc_base 주소를 구할 수 있다. 그럼 main_arena의 offset을 편하게 구해주는 도구를 알아보자.
설치
git clone https://github.com/bash-c/main_arena_offset
사용법
#main_arena 폴더 들어간 후
./main_arena [libc 파일경로]
./main_arena ../../CTF/20220209/uaf/libc6_2.27-3ubuntu1.4_amd64.so
'CTF > CTF_Configuration' 카테고리의 다른 글
바이너리에 ld와 libc 새로 링킹하기 (D_PRELOAD=./libc.so.6 segfault 뜰때 해결하기) (0) | 2022.02.19 |
---|---|
CTF-pwnable용 Docker 설치 및 사용법 (0) | 2022.02.16 |
ROPgadget 사용법 (ROP 가젯 찾는법, 리턴가젯 찾아주는 프로그램) (0) | 2022.02.09 |
One_gadget Constraints (원가젯 제약조건) 해석하기 (0) | 2022.02.09 |
one_gadget 설치 및 사용법 (0) | 2022.02.04 |