사용자에게 허용된 권한 이상의 동작이나 정보 열람을 가능하게 하는 소프트웨어의 설계상의 허점이나 결점을 말한다.
취약점 분류
1) Stack Buffer Overflow 주로 입력값의 크기를 검증하지 않는 함수 사용으로 인해 스택의 다른 영역을 침범하게 되어 발생한다. 매우 고전적인 취약점이나 아직도 많이 발생하고 있으다. ex) strcpy, scanf, gets, strcat, sprintf 등
2) Heap Overflow 스택 오버플로우와 비슷하나, 그 대상이 힙 메모리라는 점이 다르다. 메모리 영역이 다르므로 취약점 공격방법도 다르다.
3) Integer Overflow 정해진 자료형보다 큰 수를 저장할때 발생하는 오버플로우 문제로, 조건문 등에서의 분기를 우회 할수 있다. 자료형보다 큰 수를 입력할 경우 값이 양수에서 음수로 바뀌는 것을 이용한 취약점이다.
4) Format String Bug 포맷스트링을 지정해주지 않고 사용할 때 발생하는 취약점으로 %n, %hn 등의 포맷스트링을 이용하여 메모리값을 변조 할수 있다. ex)printf, sprintf
5) Use-After-Free 최근 특히 브라우저에서 많이 발견되는 취약점이다. Free된 포인터를 재사용 할 때 발생하는 취약점이다. free(ptr); ptr->func();
6) Double Free Free된 메모리를 다시 Free할 때 발생한다.
7) Null Pointer Dereference 메모리 값이 지정되지 않은 초기화되지 않은 포인터에 값을 넣으려 할때 발생한다.
웹해킹은,,,ㅠㅠㅠ