사용 조건
1. 동일한 크기의 fast chunk의 할당과 해제가 자유로워야함
2. 공격자에 의해 해제된 fast chunk를 한번 더 해제 할 수 있어야 함(double free bug)
3. 공격자에 의해 할당된 fast chunk 영역에 값을 저장할 수 있어야 함
4. 할당 받고자 하는 stack 영역에 해제된 fast chunk의 크기 값이 저장되어 있어야 함
a = malloc(112)
b = malloc(112)
c = malloc(112)
free(a)
free(b)
free(a)
-> 이 과정에서 fatsbin에 a->b->a 순서로 들어가게 됨.
다시
d = malloc(112)
e = malloc(112)
후에 d의 fd에 원하는 값(stack영역의 주소 - prev_size공간(0x8))을 넣어줌
다시
f = malloc(112)
g = malloc(112) // 여기서 원하는 stack영역의 주소에 메모리를 할당!
'HACKING > System hacking' 카테고리의 다른 글
tips for find binsh address using pwntool (0) | 2019.07.05 |
---|---|
unsafe unlink (0) | 2019.06.06 |
remote socket exploit?? (0) | 2019.02.03 |
memory cheat sheet (0) | 2019.01.17 |
free_hook으로 Full Relro 우회 (0) | 2018.09.17 |