Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 해킹
- reversing
- 알고리즘
- bee-box
- 리버싱
- Webhaking
- 순서도
- hacking
- 웹해킹
- 시스템
- 웹
- 소프트웨어보안
- CodeEngn
- 워게임
- ftz
- 드림핵
- webhacking
- dreamhack
- network
- 비박스
- 소프트웨어
- XSS
- 네트워크
- 네트워크보안
- 모의해킹
- TCP
- Web
- System
- 시스템해킹
- WarGame
Archives
- Today
- Total
Without a Break
[Dreamhack] Memory Corruption: Stack Buffer Overflow 본문
버퍼 오버플로우
버퍼
버퍼는 일상에서 '완충 장치'라는 뜻으로 사용되며, 컴퓨터 과학에서는 '데이터가 목적지로 이동되기 전에 보관되는 임시 장소'의 의미로 쓰인다.
수신 측과 송신 측 사이에 버퍼라는 임시 저장소를 두고, 이를 통해 간접적으로 데이터를 전달하게 한다.
송신 측은 버퍼로 데이터를 전송하고, 수신 측은 버퍼에서 데이터를 꺼내 사용합니다. 이렇게 하면 버퍼가 가득 찰 때까지는 유실되는 데이터 없이 통신할 수 있다.
버퍼 오버플로우
일반적으로 버퍼가 넘치는 것을 말한다. 일반적으로 버퍼는 메모리상에 연속해서 할당되어 있으므로, 어떤 버퍼에서 오버플로우가 발생하면, 뒤에 있는 버퍼들의 값이 조작될 위험이 있다.
또한, 버퍼 오버플로우는 일반적으로 어떤 메모리 영역에서 발생해도 큰 보안 위협으로 이어진다.
스택 버퍼 오버플로우
1. 중요 데이터 변조
버퍼 오버플로우가 발생하는 버퍼 뒤에 중요한 데이터가 있다면, 해당 데이터가 변조됨으로써 문제가 발생할 수 있다.
2. 데이터 유출
만약 어떤 버퍼에 오버플로우를 발생시켜서 다른 버퍼와의 사이에 있는 널바이트를 모두 제거하면, 해당 버퍼를 출력시켜서 다른 버퍼의 데이터를 읽을 수 있다.
3. 실행 흐름 조작
함수를 호출할 때 반환 주소를 스택에 쌓고, 함수에서 반환될 때 이를 꺼내어 원래의 실행 흐름으로 돌아간다고 했다.
'Pwnable > Dreamhack' 카테고리의 다른 글
[Dreamhack] Mitigation: NX & ASLR (0) | 2022.11.06 |
---|---|
[Dreamhack] Mitigation: Stack Canary (0) | 2022.11.06 |
[Dreamhack] Exploit Tech: Shellcode (0) | 2022.10.30 |
[Dreamhack] Tool: gdb (0) | 2022.10.12 |
[Dreamhack] Computer Architecture (0) | 2022.10.05 |