0. 사전정보
[ CVE-2022-34265 ] ( IP Camera ) - Command Injection
개요
| 취약점 종류 | 영향 | 심각도 | CVSS 점수 | CVE ID |
|---|---|---|---|---|
| SQL Injection | 데이터 유출 위험 | CRITICAL | 9.8 | CVE-2022-34265 |
설명
Django의 Trunc(kind)와 Extract(lookup_name) 함수 처리에서 발생하는 SQL Injection 취약점 (CVE-2022-34265)
영향을 받는 버전
Django 2.2.x ~ 2.2.29, 3.2.x ~ 3.2.11, 4.0.x ~ 4.0.5 버전
1. 환경구성
https://github.com/vulhub/vulhub/tree/master/django/CVE-2022-34265다운로드docker compose up -d를 통해 취약한 Django 4.0.5 서버 구동http://your-ip:8000접속하여 웹 페이지 확인
2. 취약점 재현
- 웹 애플리케이션은 Trunc 함수를 사용해 날짜별 페이지 클릭 수를 집계
http://your-ip:8000/?date=minute→ 분별 클릭 수 확인date파라미터에 악성 입력 삽입 가능http://your-ip:8000/?date=xxxx'xxxx- SQL 오류 메시지가 뜨면, SQL Injection이 성공적으로 이루어진것
3. 결과

4. 정리
- Django의 Trunc/Extract 함수에서 외부 입력 검증이 미흡했던 점이 핵심 원인
- 해당 취약점은 Django 4.0.6, 3.2.12, 2.2.30에서 패치됨
- 실 서비스에서는 외부 입력값을 ORM 필터나 함수에 직접 연결할 때 엄격한 유효성 검사가 필요
- 항상 최신 보안 패치를 적용하는 습관이 중요
- Github 링크