HanJeouk의 개인공부 블로그

#복습용

[원문]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