상세 컨텐츠

본문 제목

[Heap Exploitation] The House of Spirit

SYSTEM HACKING/Exploit Tech

by koharin 2019. 11. 11. 12:31

본문

728x90
반응형

목적 : 공격자가 만든 fake chunkfastbin으로 반환해서 fastbinsY에 원하는 주소를 등록하는 것.

 

malloc() 호출로 리턴된 chunk 주소를 포함하는 변수를 overwrite

 

 

Ex. malloc(0x40) 이 성공적으로 되면 chunk 주소를 리턴해주는데, 이 chunk 주소 값을 buf 포인터 변수가 저장한다.

buf는 할당된 chunk를 가리키게 된다.

 

buf fake chunk에 대응하는 메모리 주소로 수정할 수 있음

 

방법은

1. fake chunk의 size를 malloc()이 요청되는 사이즈와 같게 만든다.

-> “free(): invalid size” Security check 우회

 

 

2. glibc에서 free할 때, 뒤에 인접한 청크의 크기를 검사한다.

따라서 fake chunk 뒤에 또 하나의 다른 fake chunk가 필요하다.

=> “free():invalid next size (fast)” Security check 회피

 

이때 size는 원래 사용하려던 fake chunk와 같아도 되고, top chunk를 흉내내듯 큰 자릿수도 상관없음

 

포인터 값을 변조했으므로, free() fake chunk가 해제되어 fastbin에 들어감

같은 크기로 malloc하면 fastbin에 들어간 fake chunk가 할당된다.

 

 

728x90
반응형

'SYSTEM HACKING > Exploit Tech' 카테고리의 다른 글

[Heap Exploitation] fast_dup  (0) 2019.11.25
[Heap Exploitation] Use-After-Free (UAF)  (0) 2019.11.25
[TechNote] malloc (Heap)  (0) 2019.11.02
[Exploit Tech] JOP(Jump-Oriented Programming)  (0) 2019.11.02
[Exploit Tech] One gadget  (3) 2019.11.02

관련글 더보기