first_fit & unsafe unlink
Documents/how2heap2018. 1. 8. 15:31
#복습용
[원문]how2heap first fic.c -> Link 출처[shellphish how2heap first_fit.c]
문서를 보면 512 바이트를 malloc 했던 a를 free하고 512보다 작은 500정도로 c를 할당하면 a가 할당 되었던 주소에 할당이 된다.
(아마 같은 사이즈로 할당해도 될 것이다.)
그러면 c가 a의 주소에 있기 때문에 a는 c를 가리키게 된다.
[원문]how2heap unsafe_unlink.c- > Link 출처[shellphish how2heap unsafe_unlink.c]
unlink 메크로를 이용한 공격기법이다.
청크의 헤더 부분을 조작할 수 있어야 하고(prev_inuse 조작)
fd와 bk를 조작할 수 있어야 한다.(fake chunk fd,bk)
32bit
fd + 12 = bk
bk + 8 = fd
64bit
fd + 24 = bk
bk + 16 = fd
를 하기 때문에 fake chunk fd 를 넣을 때는 32비트면 원하는 주소 - 12 64비트면 원하는 주소의 -24 를 해줘야 한다.
bk는 32비트면 원하는 주소 -8 64비트면 -16을 빼야 unlink시 필터링에 안 걸린다.
도움되는 문서들이 다 좋은 것들이라 딱히 추천할 게 없다.
'Documents > how2heap' 카테고리의 다른 글
how2heap house_of_force (0) | 2018.02.20 |
---|---|
how2heap unsorted_bin_attack (0) | 2018.01.17 |
how2heap poison_null_byte (0) | 2018.01.16 |
house_of_einherjar (0) | 2018.01.15 |
fastbin_dup & fastbin_dup_into_stack (0) | 2018.01.03 |