Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-32675 — CVE-2021-32675의 Redis 기능적 DoS 익스플로잇으로, 과도한 크기의 벌크 문자열 헤더를 활용하여 메모리 고갈을 유발합니다. 사용 지침과 Docker 기반 테스트 환경을 포함합니다. | Kitploit
도구/GitHubGitHub/rubbxalc/cve-2021-32675
Vulnerability AnalysisExploitationPenetration TestingLearning & EducationRed Teaming
GitHubrubbxalc/cve-2021-32675

CVE-2021-32675

CVE-2021-32675의 Redis 기능적 DoS 익스플로잇으로, 과도한 크기의 벌크 문자열 헤더를 활용하여 메모리 고갈을 유발합니다. 사용 지침과 Docker 기반 테스트 환경을 포함합니다.

저장소 보기
1321일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2021-32675 – Redis 사전 할당 서비스 거부 (OOM)

이 저장소는 Redis의 서비스 거부(DoS) 취약점인 CVE-2021-32675에 대한 기능적 익스플로잇을 포함합니다. 이 결함으로 인해 인증되지 않은 원격 공격자가 인자 데이터를 제공하지 않고 과도하게 큰 벌크 문자열 헤더를 전송하여 Redis 서버에 대규모 메모리 사전 할당을 유발할 수 있으며, 이로 인해 메모리 고갈 및 서비스 중단이 발생합니다.

설명

CVE-2021-32675는 Redis 쿼리 버퍼 처리의 취약점입니다. RESP(REdis Serialization Protocol) 프로토콜에서 들어오는 명령을 파싱할 때, Redis는 벌크 문자열 인자의 선언된 길이($<length>\r\n)를 읽고, 인자 바이트를 읽기 전에 페이로드를 수신하기 위해 SDS(Simple Dynamic String) 버퍼를 메모리에 즉시 사전 할당합니다.

이 사전 할당이 인자 페이로드를 수신하기 전에 발생하므로, 인증되지 않은 클라이언트는 최대 허용 벌크 문자열 크기(기본적으로 proto-max-bulk-len은 512MB)를 선언하고 실제 데이터를 전송하지 않은 채 연결을 무기한 유지할 수 있습니다. Redis는 각 활성 연결에 대해 사전 할당된 메모리를 유지하므로 약 32,000,000배(~16바이트의 네트워크 트래픽으로 512MB 메모리 예약 발생)의 증폭 비율을 생성합니다.

이 헤더 전용 기법을 사용하여 여러 동시 연결을 열면 사용 가능한 서버 메모리가 빠르게 고갈되어 다음이 발생합니다:

  • maxmemory 정책이 활성화된 경우 강제 키 축출.
  • 후속 쓰기 작업 거부로 인한 서비스 거부(OOM command not allowed).
  • 운영 체제 OOM(Out-Of-Memory) 킬러에 의한 프로세스 종료.

이 취약점은 다음 이전 버전의 Redis에 영향을 미칩니다:

  • 6.2.6
  • 6.0.16
  • 7.0 (인증되지 않았거나 기본 벌크 제한으로 실행되는 경우)

인증(requirepass 미설정) 없이 실행되거나 기본 proto-max-bulk-len(512MB)으로 실행되는 Redis 인스턴스는 이 익스플로잇에 취약합니다. 패치된 버전은 사전 할당이 발생하기 전에 인증되지 않은 클라이언트에 대해 엄격한 16KB 프로토콜 버퍼 제한을 적용합니다.

설치 지침

  1. 가상 환경 생성 (선택 사항이지만 권장):
python3 -m venv .venv
source .venv/bin/activate
  1. 종속성 설치:
pip install -r requirements.txt

요구 사항

  • Python 3.8+

    • colorama 라이브러리
    • redis 라이브러리
  • 취약한 Redis 인스턴스 (6.2.6 / 6.0.16 이전 버전 또는 인증되지 않은 인스턴스)

사용법

python3 exploit.py --host <IP> --port <PORT> [options]

옵션

옵션유형기본값설명
--hoststr필수대상 Redis 호스트명 또는 IP 주소
--portint6379포트 번호
--connectionsint10열 악성 연결 수
--sizeint512선언된 벌크 문자열 버퍼 크기(MB)
--holdint5정리 전 연결을 유지하는 시간(초)
--password, --authstrNoneRedis 인증용 비밀번호 (필요한 경우)

예시

python3 exploit.py --host 127.0.0.1 --port 6379 --connections 10 --size 512 --hold 5

로컬 테스트 환경 (선택 사항)

포함된 Docker Compose 구성을 사용하여 로컬 테스트 랩을 실행할 수 있습니다:

# 취약한 Redis(포트 6380) 및 완화된 Redis(포트 6381) 시작
docker compose -f conf/docker-compose.yml up -d

# 취약한 인스턴스에 대해 테스트
python3 exploit.py --host 127.0.0.1 --port 6380 --connections 10 --size 512

# 완화된 인스턴스에 대해 테스트
python3 exploit.py --host 127.0.0.1 --port 6381 --password "L4bS3cur3!2024" --connections 10 --size 512

# 컨테이너 중지
docker compose -f conf/docker-compose.yml down

면책 조항

이 개념 증명은 교육, 연구 및 보안 검증 목적으로만 제공됩니다. 작성자는 명시적 허가 없이 시스템에 대한 오용, 손상 또는 무단 테스트에 대해 책임을 지지 않습니다.

도구 다운로드