문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. == 개요 == 사용자에게 허용된 권한 이상의 동작이나 정보 열람을 가능하게 하는 소프트웨어의 설계상의 허점이나 결점을 말한다.<br> 웹 시스템 등 다양한 환경에서 발생하며 개발자의 실수로 인해 발생하는 경우가 많다. == 분류 == === System Hacking === ==== Stack Buffer Overflow ==== 주로 입력값의 크기를 검증하지 않는 함수 사용으로 인해 스택의 다른 영역을 침범하게 되어 발생한다. 매우 고전적인 취약점이나 아직도 많이 발생하고 있으다. ex) strcpy, scanf, gets, strcat, sprintf 등 ==== Heap Overflow ==== 스택 오버플로우와 비슷하나, 그 대상이 힙 메모리라는 점이 다르다. 메모리 영역이 다르므로 취약점 공격방법도 다르다. ==== Integer Overflow ==== 정해진 자료형보다 큰 수를 저장할때 발생하는 오버플로우 문제로, 조건문 등에서의 분기를 우회 할수 있다. 자료형보다 큰 수를 입력할 경우 값이 양수에서 음수로 바뀌는 것을 이용한 취약점이다. ==== Format String Bug ==== 포맷스트링을 지정해주지 않고 사용할 때 발생하는 취약점으로 %n, %hn 등의 포맷스트링을 이용하여 메모리값을 변조 할수 있다. ex)printf, sprintf ==== Use-After-Free ==== 최근 특히 브라우저에서 많이 발견되는 취약점이다. Free된 포인터를 재사용 할 때 발생하는 취약점이다. free(ptr); ptr->func(); ==== Double Free ==== Free된 메모리를 다시 Free할 때 발생한다. ==== Null Pointer Dereference ==== 메모리 값이 지정되지 않은 초기화되지 않은 포인터에 값을 넣으려 할때 발생한다. === Web Hacking === ==== 입력값 검증 ==== 사용자에게서 입력값을 받을 때 발생하는 취약점이다. 일반적으로 필터링을 통해 회피할 수 있다.<br> PHP의 경우 mysqli_real_string_escape()와 같은 함수를 사용하면 이 종류의 공격을 회피할 수 있다. ===== SQL Injection ===== SQL Query를 DB에 주입하여 해커가 원하는 행동을 하게 만드는 것이다. ===== Cross Side Script (XSS) ===== JavaScript를 입력값에 사용하여 DB에 주입하거나 사용한 주소를 다른 사용자에게 유포해 쿠키 정보를 빼가는 등의 행위를 할 수 있다. <del>웹해킹은,,,ㅠㅠㅠ</del> 취약점 문서로 돌아갑니다.