[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 |