[SUA] 2장 취약점과 공격

2020. 5. 6. 06:53정보보안/시스템해킹

728x90

취약점 : 설계상의 허점을 의미

Exploit : 취약점을 공격하는 코드 , 행위 등 일체를 의미

 

취약점 분류

1. Memory Corruption 취약점

  1) Stack Buffer Overflow

char buf[20];
strcpy(buf, argv[l]); ν 경계 값 검사하지 않음

  2) Heap Buffer Overflow

int *buf = (int*)malloc(20);
strcpy(buf, argv[l]); ν 경계 값 검사하지 않음

  3) Integer Overflow

unsigned char maxlen = 0;
char len = 0;
char buf[30] = {0,};
len = strlen(argv[l]); // 128 바이트 이상 입력 시 음수로 인식
if(len>30){
printf("Error!! Max Size:30\n");
}else{
printf("Vuln! !");
strcpy(buf,argv[l]);

signed char은 128 이상의 수를 음수로 인식하므로 취약 함수가 실행된다.

c:\>integer.exe AAAAAAAAAAAAAAAAAAAAAA ......... AAA(128 개 이상)
Vuln!!(strcpy 실행)

  4) FSB (Format String Bug)

포뱃스트링을 지정해 주지 않고 사용할 때 발생하는 취약점으로 %n이나 %hn 등의 일부 포뱃
스트링을 이용하여 메모리 값을 변조한다.

 

 5) Use-After-Free

Free된 포인터를 사용할 때 발생한다.

free(object);
object->method(); // Free된 포인터 사용

 6) Double Free

Free된 메모리를 다시 Free할 때 발생한다.

int * ptr;
free(ptr);
free(ptr); ν Double Free 취약점 발생

 7) Null Pointer Dereference

메모리 값이 지정되지 않은 초기화 안된 포인터에 값을 대입할 때 발생한다.

char * ptr = null;
*ptr = '1234'; ν Null Pointer Dereference

'정보보안 > 시스템해킹' 카테고리의 다른 글

[SUA] TOOL  (0) 2020.05.06
[SUA] 시스템 해킹 OT (윈도우 시스템 해킹)  (0) 2020.05.06