피드로 돌아가기
Dev.toSecurity
원문 읽기
SQLi 및 Heap Leak을 통한 AES-256-CBC 암호화 키 탈취 및 플래그 복구
Heart Part 7 - dalCTF 2026
AI 요약
Context
인증 단계의 SQL Injection 취약점과 메모리 관리 미흡으로 인한 보안 결함이 공존하는 구조. 특히 Health Check 엔드포인트에서 사용자 정의 버퍼 크기를 제한 없이 허용하는 설계적 결함 보유.
Technical Solution
- SQL Injection을 통한 인증 우회 및 Admin 권한의 JWT 세션 획득
- /cipher/health 엔드포인트의 Unbounded Echo Buffer를 이용한 Heap Memory Disclosure 유도
- 메모리 덤프 내 특정 식별자(KENDRICK_MASTER_KEY) 검색을 통한 AES-256 Secret Key 추출
- /api/flag 엔드포인트에서 Ciphertext와 IV(Initialization Vector)를 개별적으로 확보
- 확보한 Key와 IV를 AES-256-CBC 알고리즘에 적용하여 암호화된 플래그 복호화
실천 포인트
- 입력값에 따른 출력 버퍼 크기 제한(Upper Bound) 설정 및 OOB Read 방지 - SQL Prepared Statement 도입을 통한 인증 로직의 Injection 원천 차단 - 암호화 키와 같은 민감 정보를 Heap 메모리에 평문으로 유지하는 설계 지양 - API 응답 필드의 모든 데이터(IV 등)를 정밀하게 분석하여 암호화 체계 파악