사용 조건

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

+ Recent posts