Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-1094-PoC-Postgre-SQLi — 개념 증명 에뮬레이션 및 분석 도구로, 심각한 PostgreSQL SQL 삽입 취약점인 CVE-2025-1094를 대상으로 합니다. Docker 기반 실습 환경, 익스플로잇 스크립트, 근본 원인 분석, 보안 테스트 및 교육을 위한 단계별 시연을 포함합니다. | Kitploit
도구/GitHubGitHub/ishwardeepp/cve-2025-1094-poc-postgre-sqli
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationDatabase SecurityLabs & Practice
GitHub
ishwardeepp/cve-2025-1094-poc-postgre-sqli

CVE-2025-1094-PoC-Postgre-SQLi

개념 증명 에뮬레이션 및 분석 도구로, 심각한 PostgreSQL SQL 삽입 취약점인 CVE-2025-1094를 대상으로 합니다. Docker 기반 실습 환경, 익스플로잇 스크립트, 근본 원인 분석, 보안 테스트 및 교육을 위한 단계별 시연을 포함합니다.

저장소 보기
62141년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-1094 분석 및 에뮬레이션 설정

2025년 3월 14일에 수행된 이 상세 분석은 제공된 에뮬레이션 설정과 개념 증명(PoC) 실행을 기반으로 PostgreSQL에서 가상의 심각한 SQL 인젝션 취약점인 CVE-2025-1094를 탐구합니다. 이 분석은 취약점 소개, 근본 원인, 파일 기여, PoC 단계 및 완화 조치를 다루며, 에뮬레이션 과정의 모든 복잡한 세부 사항을 포함합니다.

취약점 소개

CVE-2025-1094는 PostgreSQL의 치명적인 SQL 인젝션 결함으로 설명되며, 버전 17.3, 16.7, 15.11, 14.16, 13.19 이전에 영향을 미치고 CVSS 3.1 기본 점수 8.1로 기밀성, 무결성 및 가용성에 상당한 영향을 미칩니다. 이를 통해 공격자는 민감한 데이터에 접근하거나 원격 코드 실행(RCE)을 수행할 수 있으며, 실제 침해 사례에서 악용되었습니다. 예를 들어 BeyondTrust 사고는 17개 기업 고객에게 영향을 미쳤으며, BleepingComputer에 보고되었고, 미국 재무부 침해 사례는 The Register에 자세히 설명되어 있습니다. 2025년 3월 14일에 수행된 에뮬레이션은 server_encoding=EUC_TW 및 client_encoding=BIG5를 사용하는 Docker 설정으로, 익스플로잇을 트리거하는 데 중요했습니다. PoC는 DO 블록을 주입하여 대형 객체를 생성하고, pg_read_file을 통해 /etc/passwd를 읽고, lo_put으로 대형 객체에 쓰고, lo_export를 사용하여 로 내보내는 과정을 포함했으며, 인코딩 불일치가 권한 없는 파일 접근을 가능하게 하는 역할을 확인했습니다.

/tmp/payload

근본 원인 분석

근본 원인은 CWE-149: 인용 구문의 부적절한 중립화(Improper Neutralization of Quoting Syntax)로 분류되며, PostgreSQL의 libpq 함수(PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), PQescapeStringConn())에서 인용 구문을 적절히 처리하지 못하여, 결과가 psql 명령줄 도구의 입력을 구성하는 데 사용될 때 SQL 인젝션을 허용합니다. 이는 client_encoding이 BIG5로 설정되고 server_encoding이 EUC_TW인 경우 악화되며, 이는 설정에서 확인된 바와 같습니다. 에뮬레이션은 불일치를 생성하기 위해 EUC_TW와 zh_TW.EUC_TW가 필요했으며, psycopg2의 EUC_TW 지원 부족과 같은 문제는 UTF8로 연결한 후 BIG5로 전환하여 해결했습니다. 익스플로잇의 성공은 로그에 자세히 설명된 대로 안전한 쿼리 처리를 우회하는 subprocess.run(["psql", ...])을 통한 원시 SQL 실행에 달려 있었습니다.

파일 설명 및 기여

설정의 각 파일은 CVE-2025-1094를 에뮬레이션하는 데 중요한 역할을 합니다. 아래는 표 형식의 자세한 분석입니다.

표: 파일 기여 요약

파일수행 작업PoC에 대한 기여필요한 이유
exploit.pyPOST 요청에 DO 블록을 포함하여 대형 객체를 생성하고 내보내며 /etc/passwd를 읽습니다.SQL 인젝션을 트리거하고, 인코딩 불일치를 악용하여 임의 SQL 명령을 실행합니다.익스플로잇 실행을 가능하게 하며, PoC 영향에 중요합니다.
app.py/vuln-endpoint를 노출하는 Flask 앱으로, psql을 통해 원시 SQL을 실행합니다.익스플로잇을 위한 취약한 엔드포인트를 제공합니다.익스플로잇의 진입점으로, 취약점 시연에 필요합니다.
init.sql문자열 입력을 위한 id VARCHAR(255) 열을 가진 테스트 테이블을 생성합니다.인젝션을 위한 스키마를 설정하고, 유형 오류 없이 페이로드 실행을 보장합니다.익스플로잇을 위한 데이터베이스 설정으로, SQL 인젝션에 필수적입니다.
Dockerfile필요한 종속성을 가진 Flask 앱 컨테이너를 빌드합니다.엔드포인트 배포를 위한 격리된 앱 서비스를 생성합니다.취약한 앱을 배포하며, PoC 재현성에 중요합니다.
docker-compose.yml특정 구성으로 db 및 app 서비스를 정의하고 연결합니다.설정을 오케스트레이션하고, 인코딩 불일치 및 서비스 종속성을 보장합니다.서비스를 연결하며, 환경 설정 및 격리에 필수적입니다.
Dockerfile.dbEUC_TW 인코딩으로 PostgreSQL 컨테이너를 빌드합니다.필요한 인코딩으로 취약한 데이터베이스를 생성합니다.필요한 인코딩으로 데이터베이스를 설정하며, 취약점 트리거에 중요합니다.

개념 증명 단계

2025년 3월 14일에 실행된 PoC는 다음 단계를 통해 익스플로잇의 영향을 보여주며, 각 단계에는 자세한 설명이 포함됩니다.

  1. sudo docker compose up --build

    • 수행 작업: Docker Compose 서비스(db 및 app)를 빌드하고 시작하며, 필요한 경우 업데이트된 이미지로 컨테이너를 생성하고 postgre_default 네트워크에서 연결합니다. 취약한 환경이 설정되도록 보장하며, db는 EUC_TW 인코딩을 사용하고 app은 포트 5000에서 /vuln-endpoint를 노출하여 익스플로잇의 인코딩 불일치와 엔드포인트 접근에 중요합니다.
    • 필요한 이유: 익스플로잇이 작동하는 데 필요한 환경을 설정하고, 모든 서비스가 올바르게 실행되고 구성되도록 보장합니다.
  2. curl -X POST http://localhost:5000/vuln-endpoint -d "input=test"

    • 수행 작업: input=test를 포함한 POST 요청을 Flask 앱의 엔드포인트로 전송하여 연결성과 기본 기능을 확인하고, "Executed" 응답을 기대합니다. 앱이 실행 중이고 데이터베이스에 연결할 수 있음을 확인하여 익스플로잇을 위한 설정이 준비되었는지 보장합니다.
    • 필요한 이유: 익스플로잇을 진행하기 전에 엔드포인트에 접근 가능하고 기능하는지 확인하며, PoC 검증 단계와 일치합니다.
    • Checking Setup
  3. python3 cve-2025-1094-exploit.py

    • 수행 작업: 익스플로잇 스크립트를 실행하여 DO 블록이 포함된 POST 요청을 전송하고, 대형 객체를 생성하고 /etc/passwd를 작성한 후 /tmp/payload로 내보내며 실행 상태를 출력합니다. SQL 인젝션을 트리거하여 취약점을 악용해 /etc/passwd를 읽으며, 성공적인 파일 내보내기가 포함된 로그에서 볼 수 있듯이 CVE-2025-1094의 영향을 입증하는 데 중요합니다.
    • 필요한 이유: 핵심 익스플로잇을 실행하여 공격자가 민감한 데이터에 접근할 수 있는 방법을 보여주며, 실제 공격을 에뮬레이션하는 PoC의 목표와 일치합니다.
    • Running Exploit
  4. sudo docker ps

    • 수행 작업: 실행 중인 컨테이너를 나열하여 postgre-app-1 및 postgre-db-1이 실행 중인지 확인합니다. 익스플로잇을 실행하기 전에 설정을 확인하고, 두 서비스가 모두 활성 상태인지 확인하여 PoC 신뢰성에 중요합니다. 사용자에게 컨테이너 ID를 제공하며, 이후 명령에 필요합니다.
    • 필요한 이유: 필요한 모든 서비스가 실행 중인지 확인하여 추가 익스플로잇 단계 전에 체크포인트를 제공합니다.
  5. sudo docker exec -it bash -c "LC_ALL=C ls -l /tmp/payload && LC_ALL=C cat /tmp/payload"

    • 수행 작업: postgre-db-1 컨테이너에서 명령을 실행하여 /tmp/payload를 나열하고 표시하며, 익스플로잇 결과( /etc/passwd가 표시되어야 함)를 확인합니다. 파일을 확인하여 익스플로잇이 작동했는지 검증하고, /tmp/payload에 민감한 데이터가 포함되었는지 확인하며, PoC 검증과 일치하고 LC_ALL=C를 사용하여 로케일 깨짐을 방지합니다.
    • 필요한 이유: 출력을 확인하여 익스플로잇 성공을 검증하고, 민감한 데이터에 예상대로 접근했는지 확인합니다.
    • Validating Exploit
  6. sudo docker exec -it psql -U postgres -d postgres -c "SELECT * FROM test;"

    • 수행 작업: 데이터베이스 컨테이너에서 SQL 쿼리를 실행하여 test 테이블에서 모든 항목을 선택하고, 익스플로잇의 INSERT( "Exploit ran with loid ..."가 표시되어야 함)를 확인합니다. 익스플로잇의 데이터베이스 수정을 확인하고, DO 블록이 실행되었는지 확인하며, PoC 검증과 일치하고 loid 로깅을 검증합니다.
    • 필요한 이유: 예상대로 데이터베이스가 수정되었는지 확인하여 익스플로잇의 영향에 대한 추가 검증을 제공합니다.
  7. sudo docker compose down

    • 수행 작업: 컨테이너, 네트워크 및 볼륨을 중지하고 제거하여 환경을 정리합니다. 리소스가 해제되고 시스템 청결을 유지하며, 잔여물 없이 반복 가능한 PoC 실행에 필수적입니다.
    • 필요한 이유: 테스트 후 정리하여 잔여 서비스나 데이터가 향후 테스트에 영향을 미치지 않도록 하고, 통제된 환경을 유지합니다.

데모 비디오

Demonstration Video on Vimeo
PoC 데모를 보려면 Vimeo에서 클릭하세요.

완화 조치

CVE-2025-1094를 완화하기 위해 에뮬레이션 통찰력과 업계 지침에 따라 다음 조치를 권장합니다.

  • 패치된 버전으로 업그레이드: PostgreSQL 버전 17.3, 16.7, 15.11, 14.16 또는 13.19로 업그레이드합니다. (PostgreSQL 다운로드 페이지)
  • 입력 검증: Armosec 블로그의 조언에 따라 모든 사용자 입력을 UTF-8 인코딩으로 검증하여 인젝션을 방지합니다.
  • psql 접근 제한: 신뢰할 수 있는 사용자만 psql에 접근할 수 있도록 제한하여 공격 표면을 줄입니다.
  • 매개변수화된 쿼리 또는 ORM 프레임워크 사용: 매개변수화된 쿼리나 ORM 프레임워크를 사용하여 SQL 인젝션을 방지하고 보안을 강화합니다.
  • 다중 요소 인증(MFA) 및 역할 기반 접근 제어(RBAC): Ox Security Insights에 따라 MFA 및 RBAC를 구현하여 접근 제어를 강화합니다.
  • 로그 모니터링: 잠재적인 익스플로잇을 조기에 탐지하기 위해 로그에서 이상 징후나 의심스러운 활동을 정기적으로 모니터링합니다.
  • 강력한 백업: 잠재적인 침해로부터 복구하고 데이터 무결성을 보장하기 위해 데이터베이스의 정기적이고 강력한 백업을 유지합니다.
도구 다운로드