Tuuna Computer Science

[malloc] malloc & heap 두들이기 3탄 unsortedbin library base address leak 본문

system hacking

[malloc] malloc & heap 두들이기 3탄 unsortedbin library base address leak

GuTTe 2019. 7. 4. 11:05

unsorted bin을 통해서 library base address를 leak할 수 있다는 정보를 얻었고 실제로 재현.

ptr1와 ptr2라는 128byte의 malloc을 요청한다. 

이는 72byte인 fastbin보다 큰 수이기 때문에 free시 unsortedbin에 들어가게되며 병합되어 small bin으로 가게된다. 

이때 ptr1을 처음 free했을 때 unsorted bin에 들어가게 되는데 단일 chunk로서 fd와 bk를 연결할 곳이 없어 fd와 bk모두 main_arena+88의 주소를 가리키게 된다. 

그럼 이때 free된 청크를 다시할당하면 UAF취약점이 발생하게 되어 main_arena+88의 주소값을 leak할 수 있게 된다. 

main_arena는 libc.so.6 에 존재하므로 해당 라이브러리의 main_arena 오프셋을 구한뒤 88을 빼주면 라이브러리의 주소값을 leak할 수 있다. 

해당 라이브러리의 main_arena offset은 0x3c4b20이다. 

 

library base address가 구해졌다. 

 

Comments