쉽게 이해하는 스택 버퍼 오버플로우 공격


쉽게 이해하는 스택 버퍼 오버플로우 공격

먼저 알아둘 것 리눅스 메모리 구조 SYSV 함수 호출 규약 이번에 살펴볼 보안 주제는 스택 버퍼 오버플로우(Stack buffer overflow)입니다. 리눅스 메모리 구조에 따르면(그리고 다른 운영체제의 메모리), 메모리 공간은 일단 한정적이며, 스택의 형태로 관리된다고 했습니다. 스택 버퍼 오버플로우 공격은 바로 이 메모리에서 스택 영역(stack section)에 있는 버퍼(buffer)에 과도하게 많은 양의 데이터를 삽입하는 해킹(공격) 기법입니다. 예를 들어 아래와 같이 일렬로 이어진 술잔을 생각해 봅시다. 아래 그림에서는 술잔의 높이랑 모양이 제각각인데, 상상을 더해서 술잔의 모양과 크기가 모두 같고 딱딱 붙어있다고 생각해봅시다. 그리고 각각의 술잔에는 서로 다른 술이 절반 정도 차 있구요. 이때 어느 한 사람이 와서 제일 왼쪽의 술잔에 술을 붓기 시작합니다. 그런데 술을 끝도 없이 계속해서 붓는다면 어떻게 될까요? 술은 결국 술잔을 타고 넘쳐 옆 잔으로 흘러 서로 다...


#0x402014에 #어셈블리 #실습 #시스템보안 #스택버퍼오버플로우 #쉬운설명 #보안 #버퍼 #드림핵 #더쉽게설명해드림 #x64 #scanf #Overflow #GDB #C언어 #C #Assembly #어셈블리어

원문링크 : 쉽게 이해하는 스택 버퍼 오버플로우 공격