반응형
Recent Posts
Recent Comments
Link
«   2024/07   »
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
Tags
more
Archives
Today
Total
관리 메뉴

ZZoMb1E_PWN

[PWNABLE] ASLR 보호기법 본문

STUDY/PWNABLE_AMD64

[PWNABLE] ASLR 보호기법

ZZoMb1E 2023. 10. 22. 05:16
728x90
반응형

※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ 

 

바이너리가 실행될 때마다 코드 영역을 제외한 스택, 힙, 공유 라이브러리 영역의 주소를 랜덤하게 바꿔주는 보호기법이다.

 

실행할 때마다 주소가 바뀌는 것을 볼 수 있다.

위 실행 파일의 코드이다.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char *global = "whrd";
  
int main(){
    char *heap = malloc(100);
    char *stack[] = {"whrd"};
 
    printf("[Heap]  address: %p\n", heap);
    printf("[Stack] address: %p\n", stack);
    printf("[libc]  address: %p\n",**(&stack + 3));
    printf("[.data] address: %p\n",global);
    gets(heap);
    return 0;
}

 

현재 aslr 적용 상태이다.

 cat /proc/sys/kernel/randomize_va_space

위 명령어를 사용하여 확인할 수 있다.

 

 

적용 상태는 0, 1, 2로 3가지가 존재한다.

 

먼저 0을 적용한 상태이다.

주소의 영역이 변경되지 않는 것을 볼 수 있다.

 

 

1을 적용한 상태이다.

stack과 libc의 영역만 바뀐다.

 

기본 값인 2를 적용한 상태이다.

모든 주소가 바뀌는 것을 볼 수 있다.

728x90
반응형

'STUDY > PWNABLE_AMD64' 카테고리의 다른 글

[PWNABLE] Shellcode & RTS  (0) 2023.10.22
[PWNABLE] NX bit  (0) 2023.10.22
[PWNABLE] Canary_GOT Overwrite  (0) 2023.10.22
[PWNABLE] GOT Overwrite  (0) 2023.10.04
[PWNABLE] plt & got  (1) 2023.10.04