보안 테스트-버퍼 오버플로

프로그램이 임시 데이터 저장 영역 (버퍼)에 저장하려는 데이터보다 더 많은 데이터를 저장하려고하면 버퍼 오버플로가 발생합니다. 한정된 양의 데이터를 포함하도록 버퍼가 생성되기 때문에 추가 정보가 인접한 버퍼로 오버플로되어 그 안에있는 유효한 데이터가 손상 될 수 있습니다.

다음은 버퍼 오버 플로우의 전형적인 예입니다. 이는 동작을 제어하기 위해 외부 데이터에 의존하는 첫 번째 시나리오로 인해 발생하는 간단한 버퍼 오버 플로우를 보여줍니다. 사용자가 입력 한 데이터의 양을 제한 할 수있는 방법이 없으며 프로그램의 동작은 사용자가 입력 한 문자 수에 따라 다릅니다.

...
   char bufr[BUFSIZE]; 
   gets(bufr);
   ...

손에

Step 1− 인터넷에 접속하려면 이름과 방 번호로 로그인해야합니다. 다음은 시나리오 스냅 샷입니다.

Step 2 − 또한 Burp Suite에서 "숨겨진 양식 필드 숨기기 해제"를 아래와 같이 활성화합니다. −

Step 3− 이제 이름과 방 번호 필드에 입력을 보냅니다. 우리는 또한 방 번호 필드에 꽤 큰 숫자를 주입하려고합니다.

Step 4− 숨겨진 필드는 아래와 같이 표시됩니다. 약관 동의를 클릭합니다.

Step 5 − 공격이 성공하여 버퍼 오버플로의 결과로 인접한 메모리 위치를 읽기 시작하고 아래와 같이 사용자에게 표시됩니다.

Step 6− 이제 표시된 데이터를 사용하여 로그인하겠습니다. 로깅 후 다음 메시지가 표시됩니다.

예방 메커니즘

  • 코드 검토
  • 개발자 교육
  • 컴파일러 도구
  • 안전한 기능 개발
  • 정기 스캔