unlink
코드
그래픽 설명
unlink 프로세스의 훌륭한 그래픽 설명을 확인하세요:
보안 확인 사항
청크의 크기가 다음 청크에 표시된 prev_size와 동일한지 확인
또한
P->fd->bk == P
및P->bk->fw == P
를 확인청크가 작지 않은 경우,
P->fd_nextsize->bk_nextsize == P
및P->bk_nextsize->fd_nextsize == P
를 확인
누출
언링크된 청크는 할당된 주소를 정리하지 않으므로, rad에 액세스하여 흥미로운 주소를 누출할 수 있습니다:
Libc 누출:
P가 이중 연결 목록의 헤드에 위치한 경우,
bk
는 libc의malloc_state
를 가리킵니다.P가 이중 연결 목록의 끝에 위치한 경우,
fd
는 libc의malloc_state
를 가리킵니다.이중 연결 목록에 빈 청크가 하나만 있는 경우, P가 이중 연결 목록에 있고,
fd
와bk
모두malloc_state
내부 주소를 누출할 수 있습니다.
힙 누출:
P가 이중 연결 목록의 헤드에 위치한 경우,
fd
는 힙의 사용 가능한 청크를 가리킵니다.P가 이중 연결 목록의 끝에 위치한 경우,
bk
는 힙의 사용 가능한 청크를 가리킵니다.P가 이중 연결 목록에 있는 경우,
fd
와bk
는 모두 힙의 사용 가능한 청크를 가리킵니다.
Last updated