
Bacula-Web의 시간 기반 블라인드 SQL 인젝션에 대한 개념 증명 익스플로잇으로, pg_sleep() 지연을 통해 PostgreSQL 버전을 추출합니다. 공인된 보안 테스트 전용입니다.
취약점 제목: Bacula-Web에서의 시간 기반 블라인드 SQL 인젝션
제품: Bacula-Web
영향을 받는 버전: PostgreSQL 백엔드를 지원하는 버전에서 확인됨
CVE ID: CVE-2025-45346
심각도: 높음
공격 벡터: 원격
영향: 임의 SQL 실행, 정보 노출
이 개념 증명(PoC)은 Bacula-Web의 jobfiles 엔드포인트에서 시간 기반 블라인드 SQL 인젝션 취약점을 보여줍니다.
원격 공격자는 pg_sleep() 함수를 사용하여 의도적인 지연을 유발함으로써 기본 PostgreSQL 데이터베이스(데이터베이스 버전 포함)에서 정보를 추출할 수 있습니다.
requests 라이브러리 (pip install requests)스크립트를 편집하여 다음을 설정하세요:
base_url = "http://baculaweb.domain/jobfiles/29/1/"
cookies = {"Bacula-Web": "REPLACEME"}
다음을 교체하세요:
base_url을 Bacula-Web 대상 URL로REPLACEME를 유효한 Bacula-Web 세션 쿠키로python3 extract_pgsql_version.py
pg_sleep(2)가 포함된 무해한 SQL 페이로드를 전송합니다.SUBSTRING()을 사용하여 PostgreSQL 버전 문자열의 위치를 반복하며 문자를 하나씩 비교합니다.jobfiles 경로에 입력 검증 적용보안 연구원 – Kevin Suckiel -- 0xsu3ks CVE-2025-45346에 대한 PoC가 책임 있는 공개 절차를 통해 공개되었습니다.
이 도구는 승인된 테스트 및 연구 목적으로만 제공됩니다.
저자는 이 PoC의 무단 사용 또는 오용에 대해 책임을 지지 않습니다.