작업 환경
- VMware Workstation Pro (17.6.2 ver)
- Server
- Web 서버 : Rocky_Linux(8.10 ver, VMnet 2, PHP로 구성)
- DNS 서버 : Rocky_Linux(8.10 ver, VMnet 1)
- Client
- Kali Linux : Web 취약점 점검용 (VMnet 1)
- GNS 구성
- 해당 점검은 비밀번호 수정 페이지에 한해서 진행됨
BO (상) | 1. 버퍼 오버플로우 |
취약점 개요 | |
점검 내용 | 사용자가 입력한 파라미터 값의 문자열 길이 제한 확인 |
점검 목적 | 웹 사이트에서 사용자가 입력한 파라미터 값의 문자열 길이 제한 여부를 점검하여 비정상적 오류 발생을 차단하기 위함 |
보안 위협 | 웹 사이트에서 사용자가 입력한 파라미터 값의 문자열 길이를 제한하지 않는 경우 개발 시에 할당된 저장 공간보다 더 큰 값의 입력이 가능하고 이로 인한 오류 발생 시 의도되지 않은 정보 노출, 프로그램에 대한 비인가 접근 및 사용 등이 발생할 수 있음 |
판단 기준 |
양호 : 파라미터 값에 다량의 다양한 포맷 문자열 입력 시 에러 페이지나 오류가 발생하지 않는 경우 취약 : 파라미터 값에 대한 검증 미흡으로 에러 페이지나 오류가 발생하는 경우 |
참고 | OWASP TOP 10 항목 중 A01 : Broken Access Control A03 : Vulnerable and Outdated Components A05 : Security Misconfiguration 에 해당한다고 판단 |
점검 방법
- Step 1) 입력 필드에서 계정 정보 입력 시 대량의 문자열을 입력하여 에러 페이지나 오류가 발생하는지 점검
- Step 2) URL 파라미터 값에 대량의 문자열 입력 시 에러 페이지나 오류가 발생하는지 점검
보안 설정 방법
- 웹 서버, 웹 애플리케이션 서버 버전을 안정성이 검증된 최신 버전으로 패치
- 웹 애플리케이션에 전달되는 파라미터 값을 필요한 크기만큼만 받을 수 있도록 변경하고 입력 값 범위를 초과한 경우에도 에러 페이지를 반환하지 않도록 설정
- 동적 메모리 할당을 위해 크기를 사용하는 경우 그 값이 음수가 아닌지 검사하여 버퍼 오버플로우를 예방하는 형태로 소스 코드 변경
- 버퍼 오버플로우를 점검하는 웹 스캐닝 툴을 이용하여 주기적으로 점검
참고
📌 버퍼 오버플로우란 ?
- 버퍼(buffer) : 데이터를 임시로 저장하는 메모리 공간
- 오버플로우(overflow) : 메모리를 넘는 데이터를 입력했을 때 발생
- 결과 : 인접한 메모리를 덮어쓰게 되고, 실행 흐름이 공격자 의도대로 바뀔 수 있음
🔐 OWASP TOP 10(2021)과의 연관
1. A01: Broken Access Control
- 공격자가 버퍼 오버플로우를 통해 루트 권한 상승 등 권한 우회를 시도할 수 있음
- PHP 자체는 이런 구조가 아니지만, PHP로 연동된 네이티브 애플리케이션이 존재할 경우 발생 가능
2. A05 : Security Misconfiguration
- 애플리케이션이 적절한 입력 길이 제한이나 유효성 검증을 하지 않을 경우
- 버퍼 오버플로우뿐만 아니라 DoS(서비스 거부) 등도 유발
- 예) $_POST['pw'] 값에 수천 자 문자열을 넣어도 아무 검증 없이 처리 → 과부하 또는 라이브러리 오류 유발
3. A06 : Vulnerable and Outdated Components
- 버퍼 오버플로우는 낡은 C 기반 컴포넌트나 네이티브 바이너리, 라이브러리에서 자주 발생
- PHP 같은 고수준 언어에서는 직접적 영향은 적지만, PHP에서 사용하는 C 기반 확장(이미지 라이브러리)에서 발생가능
'주요정보통신기반시설가이드 > Web 취약점 점검' 카테고리의 다른 글
[SS (상)] 6. SSI 인젝션 (0) | 2025.05.12 |
---|---|
[SI (상)] 5. SQL 인젝션 (0) | 2025.05.12 |
[OC (상)] 4. 운영체제 명령 실행 (2) | 2025.05.11 |
[LI (상)] 3. LDAP 인젝션 (0) | 2025.05.11 |
[FS (상)] 2. 포맷 스트링 (0) | 2025.05.11 |