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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-57821-PoC-Exploit — 🔐 CVE-2026-57821 - Apache Fineract SQL 인젝션 툴킷 📚 승인된 보안 테스트를 위한 두 개의 Python 스크립트: verifier.py(안전한 탐지, 추출 없음) 및 exploit.py(심층 분석). 11가지 DB 유형을 지원합니다. SQL 인젝션 취약점을 이해하는 데 완벽합니다. 합법적인 테스트만 ⚠️ 교육 및 연구 목적으로만 사용하세요. | Kitploit
도구/GitHubGitHub/tc4dy/cve-2026-57821-poc-exploit
Static AnalysisVulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationDatabase Security

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
GitHub
tc4dy/cve-2026-57821-poc-exploit

CVE-2026-57821-PoC-Exploit

🔐 CVE-2026-57821 - Apache Fineract SQL 인젝션 툴킷 📚 승인된 보안 테스트를 위한 두 개의 Python 스크립트: verifier.py(안전한 탐지, 추출 없음) 및 exploit.py(심층 분석). 11가지 DB 유형을 지원합니다. SQL 인젝션 취약점을 이해하는 데 완벽합니다. 합법적인 테스트만 ⚠️ 교육 및 연구 목적으로만 사용하세요.

저장소 보기
321개월 전아직 검토되지 않음
공유

CVE-Picture

🛡️ CVE-2026-57821 – Apache Fineract SQL 인젝션

⚠️ 법적 및 윤리적 고지
이 툴킷은 교육, 훈련 및 승인된 보안 테스트 목적으로만 제공됩니다.
명시적인 서면 허가 없이 시스템에 무단 사용하는 것은 불법이며 컴퓨터 범죄 법률을 위반합니다.
저자는 오용이나 손해에 대해 어떠한 책임도 지지 않습니다.
귀하의 행동에 대한 모든 책임은 귀하에게 있습니다.


📋 취약점 개요

CVE-2026-57821은 Apache Fineract의 사무실 목록 API 엔드포인트에서 발견된 SQL 인젝션 취약점입니다.

🎯 영향받는 구성 요소

속성세부사항
엔드포인트/api/v1/offices
파라미터orderBy
메서드GET
인증 필요예 (인증된 사용자만)
영향받는 버전Apache Fineract ≤ 1.14.0
패치된 버전Apache Fineract 1.15.0

🧠 작동 방식

이 취약점은 orderBy 파라미터가 적절한 삭제(sanitization) 없이 SQL 쿼리에 직접 포함되기 때문에 발생합니다. 유효한 자격 증명을 가진 공격자는 orderBy 파라미터에 괄호 ()로 감싸진 서브쿼리를 주입할 수 있습니다.

이전 수정을 우회하는 이유:

  • CVE-2024-32838에서는 ORDER BY 절을 삭제하기 위해 ColumnValidator를 도입했습니다.
  • 검증기는 괄호 안에 있는 베어 서브쿼리를 감지하지 못합니다.
  • 따라서 ORDER BY 컨텍스트 내에서 임의의 SQL 실행이 가능합니다.

공격 벡터 예시:

GET /api/v1/offices?orderBy=(SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)&limit=1

⚡ 잠재적 영향

영향설명
데이터 유출시간 기반 블라인드 SQL 인젝션으로 민감한 데이터베이스 콘텐츠 추출 가능
서비스 거부무거운 쿼리로 연결 풀 리소스 고갈
정보 노출오류 기반 기법으로 데이터베이스 구조 및 데이터 노출 가능

👤 발견 및 공개

속성세부사항
발견자 / 제보자Terence Monteiro (Apache Fineract Team)
공개일2026년 7월 14일
패치된 버전Apache Fineract 1.15.0
공식 발표Apache 메일링 리스트
GitHub 수정PR #6048

🗄️ 지원되는 데이터베이스 시스템

이 툴킷은 11가지 다른 데이터베이스 백엔드를 자동으로 감지하고 공격 기술을 조정합니다:

데이터베이스감지 방법공격 기술
PostgreSQL시간 기반 (pg_sleep)시간 기반 블라인드
MySQL시간 기반 (SLEEP)시간 기반 블라인드
MariaDB시간 기반 + @@version_comment시간 기반 블라인드
MSSQL오류 기반 (CONVERT 실패)오류 기반
Oracle시간 기반 (DBMS_LOCK.SLEEP)시간 기반 블라인드
SQLite무거운 쿼리 (카티전 조인)시간 기반 (무거운)
Firebird무거운 쿼리 (카티전 조인)시간 기반 (무거운)
DB2무거운 쿼리 (카티전 조인)시간 기반 (무거운)
Informix무거운 쿼리 (카티전 조인)시간 기반 (무거운)
H2무거운 쿼리 (카티전 조인)시간 기반 (무거운)
알 수 없음 (일반)PostgreSQL로 대체시간 기반

🛠️ 툴킷 구성 요소

이 프로젝트는 두 개의 Python 스크립트를 제공하며, 각각 다른 보안 평가 시나리오에 사용됩니다:

📊 verifier.py – 안전하고 최소한의 확인 도구

목적: 데이터 추출 없이 취약점 존재 여부를 빠르게 증명합니다.

기능:

  • 데이터베이스별 테스트 페이로드 전송
  • 시간 지연 또는 오류 메시지 감지
  • 각 데이터베이스 유형에 대해 VULNERABLE 또는 NOT VULNERABLE 보고
  • 데이터를 유출하지 않음

✅ 장점:

  • 매우 빠름 (수 초 내 완료)
  • 법적 위험 낮음 (존재 여부만 확인)
  • 초기 보안 스캔에 이상적
  • 규정 준수에 적합한 보고 출력

📋 사용 사례: 대상이 취약한지 확인하기 위한 1차 평가.

🔬 exploit.py – 종합 보안 분석기

목적: 취약점을 완전히 활용하여 데이터베이스 정보 추출.

기능:

  • 데이터베이스 유형 자동 감지
  • 이진 검색을 사용하여 문자 단위 추출
  • 버전, 현재 사용자, 데이터베이스 이름, 테이블 목록 검색 (구성 가능)
  • MSSQL: 오류 기반 추출
  • 기타: 기준 보정이 포함된 시간 기반 추출

✅ 장점:

  • 영향에 대한 구체적인 증거 제공
  • 취약점의 전체 범위 시연
  • 색상 코드 출력과 함께 상세 로깅

📋 사용 사례: 취약점 확인 후 심층 보안 분석.

🔍 주요 차이점: verifierPoC.py는 취약한지 여부를 알려주고, exploit.py는 무엇을 추출할 수 있는지 보여줍니다. 둘 다 보안 평가 워크플로에서 서로 다르지만 보완적인 역할을 합니다.


⚙️ 설치 및 구성

사전 요구 사항

  • Python 3.6+
  • requests 라이브러리
root@kitploit:~
pip install requests

⚙️ 구성 변수

두 스크립트 상단에서 다음 변수를 수정하십시오:

변수설명기본값
TARGETFineract API URLhttp://localhost:8080/fineract-provider/api/v1/offices
USERNAMEAPI 인증 사용자 이름mifos
PASSWORDAPI 인증 비밀번호password
TENANT_ID테넌트 식별자default
BASE_SLEEP시간 기반 테스트 지연 시간 (exploit.py)6
SLEEP_SECONDS시간 기반 테스트 지연 시간 (verifier.py)5
TIMEOUTHTTP 요청 시간 초과25 (exploit) / 15 (verifier)
MAX_RETRIES실패한 요청 재시도 횟수2

🚀 사용 가이드

1️⃣ exploit.py - 심층 스캔

root@kitploit:~
python3 exploit.py

예상 출력:

root@kitploit:~
CVE-2026-57821 - Apache Fineract Vulnerability Verifier
══════════════════════════════════════════════════════════════════════════════════════
@tc4dy is here :) Good Luck!

CONNECTION SUCCESS
BASELINE: 0.234s
STARTING VULNERABILITY VERIFICATION
VERIFICATION RESULTS
PostgreSQL: VULNERABLE
MySQL: NOT VULNERABLE
MariaDB: NOT VULNERABLE
Oracle: NOT VULNERABLE
MSSQL: NOT VULNERABLE
CONCLUSION: TARGET IS VULNERABLE (CVE-2026-57821 CONFIRMED)

Interpretation: If VULNERABLE appears for any database type, the target is affected.

🎯 기술 사양

CVSS 점수 메트릭 값 CVSS v3.1 기본 점수 8.1 (높음) 벡터 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H 공격 경로 네트워크 필요 권한 낮음 사용자 상호작용 없음 EPSS 점수

root@kitploit:~
0.29% (30일 이내 악용 확률)

CWE 매핑

root@kitploit:~
CWE‑89: SQL 명령어 내 특수 요소 부적절한 중화 ('SQL 인젝션')

🧪 기술 심층 분석

페이로드가 작동하는 이유

Apache Fineract 1.14.0의 취약한 코드:

root@kitploit:~
// Simplified vulnerable logic
String orderBy = request.getParameter("orderBy");
if (ColumnValidator.isValid(orderBy)) {
    // VALIDATOR FAILS FOR: "(SELECT ...)"
    // Only checks against simple column names
    String sql = "SELECT * FROM offices ORDER BY " + orderBy;
    // Executes query with user input directly
}

공격자 페이로드 예시:

root@kitploit:~
GET /api/v1/offices?orderBy=(SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)&limit=1

결과 SQL:

root@kitploit:~
SELECT * FROM offices ORDER BY (SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)

ColumnValidator는 컬럼 이름을 확인하지만 중첩된 서브쿼리를 놓쳐 임의의 SQL 실행을 허용합니다.

🛡️ 완화 조치

조치우선순위
Apache Fineract 1.15.0+로 업그레이드🔴 긴급
PR #6048 패치 적용🔴 긴급
WAF 규칙: (SELECT, SLEEP(, pg_sleep(, WAITFOR가 포함된 orderBy 차단🟠 높음
로그 모니터링: 괄호나 서브쿼리 키워드가 포함된 orderBy 감시🟠 높음
데이터베이스 연결 풀 모니터링으로 리소스 고갈 탐지🟡 중간
도구 다운로드