9일차 학습 범위인 **웹 애플리케이션 취약점 심화(PART 03 SEC 08-05~14)**는 웹 해킹의 실전 기술들과 이를 방어하기 위한 **시큐어 코딩(Secure Coding)**의 핵심 원칙을 다룹니다.
어제 배운 인젝션이 '데이터'를 노리는 공격이었다면, 오늘은 **'파일'**과 '서버 권한' 자체를 노리는 공격들을 학습합니다.
1. 웹 애플리케이션 취약점 (SEC 08-05~10)
- OS Command Injection: 웹 파라미터를 통해 서버 운영체제의 명령어를 실행하는 공격입니다.
- 예: ; rm -rf / 또는 | cat /etc/passwd 등을 입력값에 삽입.
- 파일 업로드(File Upload) 취약점: 악성 스크립트(WebShell)를 서버에 업로드하여 원격으로 서버를 제어하는 공격입니다. 실기 시험에서 가장 위험도가 높은 공격으로 꼽힙니다.
- 방어: 확장자 화이트리스트 검사, 파일명 변경 보관, 실행 권한 제거.
- 파일 다운로드 & 경로 추적(Path Traversal): ../ 문자를 이용해 상위 디렉터리로 이동하여 /etc/passwd 같은 민감한 파일을 다운로드하는 공격입니다.
- 파일 삽입(File Inclusion): 서버 측 코드에 외부 파일을 포함시키는 공격입니다.
- LFI (Local): 서버 내부에 있는 파일을 실행.
- RFI (Remote): 외부 서버(http://...)에 있는 악성 코드를 불러와 실행.
2. 세션 관리 및 기타 취약점 (SEC 08-11~13)
- 불충분한 세션 관리: 세션 타임아웃이 너무 길거나, 로그아웃 후에도 세션이 유효한 경우, 또는 세션 ID가 추측 가능한 경우 발생합니다.
- 정보 누출: 서버의 에러 메시지(500 에러 등)를 통해 DB 정보나 서버 경로가 노출되는 취약점입니다.
- 대응: 사용자에게는 추상적인 에러 메시지만 보여주어야 함.
3. 개발 보안관리: 시큐어 코딩 (SEC 08-14)
실기 주관식에서 **"보안 약점과 보안 취약점의 차이"**나 **"입력값 검증 단계"**를 묻는 경우가 많습니다.
- 시큐어 코딩 7대 요항목:
- 입력 데이터 검증 및 표현 (SQLi, XSS 등 방지)
- 보안 기능 (인증, 권한, 암호화)
- 시간 및 상태 (병렬 처리 오류)
- 에러 처리 (정보 누출 방지)
- 코드 오류 (널 포인터 역참조 등)
- 캡슐화 (중요 정보 노출)
- API 오용
🔍 실기형 핵심 체크리스트
- 파일 업로드 취약점의 궁극적 대응: 업로드된 파일이 저장되는 디렉터리의 실행 권한(Execute)을 제거하는 것입니다.
- WebShell(웹셸)이란?: 웹 스크립트(asp, php, jsp) 형식으로 작성되어 서버 명령어를 실행할 수 있게 해주는 악성 프로그램입니다.
- Path Traversal 방어: 입력값에서 .., /, \ 같은 경로 제어 문자를 필터링해야 합니다.
✍️ 오늘의 1분 인출 연습:
- 웹을 통해 서버 운영체제 명령어를 실행시키는 공격 명칭은?
- 공격자가 서버를 제어하기 위해 업로드하는 악성 스크립트 파일을 무엇이라 부르는가?
- 상위 디렉터리로 이동하기 위해 사용하는 특수 문자의 조합은?
오늘은 PART 03 SECTION 08-05~14를 정독하세요. 특히 파일 업로드 방어 기법 3가지는 실기 서술형 단골이니 꼭 외워두시기 바랍니다. 내일은 웹 서버(Apache 등) 자체의 취약점과 로그 분석을 공부하겠습니다! 궁금한 점이 생기면 언제든 물어봐 주세요.
'정보보안(산업)기사' 카테고리의 다른 글
| 11일차 : 메일, DB, 클라우드 보안 (0) | 2026.02.25 |
|---|---|
| 10일차 : 웹 서버 취약점 및 로그 분석 (0) | 2026.02.25 |
| 8일차 : 애플리케이션 보안 (0) | 2026.02.25 |
| 7일차 : 시스템 & 네트워크 보안 총정리 및 복습 (0) | 2026.02.25 |
| 6일차 : 네트워크 보안 프로토콜 및 라우터 보안 (0) | 2026.02.25 |