보안 테스트-버퍼 오버플로
프로그램이 임시 데이터 저장 영역 (버퍼)에 저장하려는 데이터보다 더 많은 데이터를 저장하려고하면 버퍼 오버플로가 발생합니다. 한정된 양의 데이터를 포함하도록 버퍼가 생성되기 때문에 추가 정보가 인접한 버퍼로 오버플로되어 그 안에있는 유효한 데이터가 손상 될 수 있습니다.
예
다음은 버퍼 오버 플로우의 전형적인 예입니다. 이는 동작을 제어하기 위해 외부 데이터에 의존하는 첫 번째 시나리오로 인해 발생하는 간단한 버퍼 오버 플로우를 보여줍니다. 사용자가 입력 한 데이터의 양을 제한 할 수있는 방법이 없으며 프로그램의 동작은 사용자가 입력 한 문자 수에 따라 다릅니다.
...
char bufr[BUFSIZE];
gets(bufr);
...
손에
Step 1− 인터넷에 접속하려면 이름과 방 번호로 로그인해야합니다. 다음은 시나리오 스냅 샷입니다.
Step 2 − 또한 Burp Suite에서 "숨겨진 양식 필드 숨기기 해제"를 아래와 같이 활성화합니다. −
Step 3− 이제 이름과 방 번호 필드에 입력을 보냅니다. 우리는 또한 방 번호 필드에 꽤 큰 숫자를 주입하려고합니다.
Step 4− 숨겨진 필드는 아래와 같이 표시됩니다. 약관 동의를 클릭합니다.
Step 5 − 공격이 성공하여 버퍼 오버플로의 결과로 인접한 메모리 위치를 읽기 시작하고 아래와 같이 사용자에게 표시됩니다.
Step 6− 이제 표시된 데이터를 사용하여 로그인하겠습니다. 로깅 후 다음 메시지가 표시됩니다.
예방 메커니즘
- 코드 검토
- 개발자 교육
- 컴파일러 도구
- 안전한 기능 개발
- 정기 스캔