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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-56381 — ERPNext v15.67.0에서 /api/method/frappe.desk.reportview.get 엔드포인트의 order_by 및 group_by 매개변수를 통해 여러 SQL 인젝션 취약점이 발견되었습니다. | Kitploit
도구/GitHubGitHub/moalali/cve-2025-56381
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubmoalali/cve-2025-56381

CVE-2025-56381

ERPNext v15.67.0에서 /api/method/frappe.desk.reportview.get 엔드포인트의 order_by 및 group_by 매개변수를 통해 여러 SQL 인젝션 취약점이 발견되었습니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-56381 — ERPNext / Frappe의 order_by 및 group_by 매개변수를 통한 인증된 SQL 인젝션

📌 요약 ERPNext v15.67.0 및 Frappe Framework v15.72.4에는 frappe.desk.reportview.get API 엔드포인트에 여러 인증된 SQL 인젝션 취약점이 존재합니다. order_by 또는 group_by 매개변수에 악의적인 입력을 주입하여 임의의 SQL 문을 실행할 수 있습니다. 이를 통해 인증된 사용자(보고서에 대한 기본 액세스 권한 보유)가 민감한 데이터를 추출하고, 데이터베이스 열거를 수행하며, 시스템 내 권한을 조작하거나 상승시킬 수 있습니다.


🛠 기술 세부 사항

  • 취약점 유형: SQL 인젝션 (CWE-89)

  • 영향을 받는 제품: ERPNext / Frappe

  • 영향을 받는 버전:

    • Frappe — 15.72.4
    • ERPNext — 15.67.0
  • 영향을 받는 엔드포인트:

    root@kitploit:~
POST /api/method/frappe.desk.reportview.get
  • 취약한 매개변수:

    • order_by
    • group_by
  • 인증 필요: 예 (sid 쿠키를 통한 유효한 세션)

  • 공격 유형: 원격

  • 심각도: 높음 (SQL 코드 실행, 데이터 유출, 잠재적 권한 상승)

  • 예상 CVSS v3.1 점수: 8.6 (높음) — 추정치; 최종 점수는 공식 CVE 기관에서 지정해야 합니다.

  • 상태: 수정되지 않음 (공개 시점 기준)

  • 발견자: Mohammed Aloli (GitHub, X, LinkedIn)

  • CVE ID: CVE-2025-56381


  • 🚀 개념 증명 (PoC) — 오류 기반 SQL 인젝션

    image

    ✅ 본인이 소유하거나 명시적 허가를 받은 시스템에서만 테스트하세요. 동의 없이 프로덕션 시스템에 사용하지 마세요.

    ❗ 페이로드 (URL 인코딩):

    root@kitploit:~
    %28select%20updatexml%28null%2Cconcat%280x7e%2Cdatabase%28%29%2C0x7e%29%2Cnull%29%29
    

    예시 JSON 본문 (POST 요청):

    root@kitploit:~
    {
      "doctype": "User",
      "order_by": "(select updatexml(null,concat(0x7e,database(),0x7e),null))"
    }
    

    이를 통해 SQL 인젝션이 성공적으로 실행되었고 현재 데이터베이스 이름이 유출되었음을 확인할 수 있습니다.


    🧪 악용 시나리오

    1. 공격자는 기본 권한(예: 표준 보고서 액세스)으로 ERPNext/Frappe 인스턴스에 로그인합니다.
    2. 악의적인 order_by 또는 group_by 페이로드가 포함된 조작된 POST 요청이 /api/method/frappe.desk.reportview.get로 전송됩니다.
    3. 백엔드는 이 값을 삭제(sanitization) 없이 SQL 쿼리에 직접 주입합니다.
    4. 공격자는 주입된 출력을 노출하는 데이터베이스 오류를 확인하여 인젝션을 확인합니다.
    5. 동일한 기법은 기본 데이터베이스 구성에 따라 시간 기반 페이로드, UNION 기반 인젝션 또는 권한 상승 경로와 연결될 수 있습니다.

    🔐 완화 권장 사항

    1. 매개변수화된 쿼리 사용: 모든 사용자 입력은 안전하게 바인딩되어야 하며 SQL 쿼리에 직접 연결(concatenate)되어서는 절대 안 됩니다.
    2. 엄격한 입력 검증: 처리 전에 order_by 및 group_by를 허용 가능한 컬럼 이름의 알려진 허용 목록(allowlist)과 대조하여 검증하세요.
    3. 식별자 이스케이프 처리: 동적 사용이 필요한 경우 DBMS별 컬럼/필드 식별자 이스케이프를 사용하세요.
    4. 노출 최소화: 사용자 역할 및 신뢰 수준에 따라 /reportview.get API 및 보고서 기능에 대한 액세스를 제한하세요.
    5. 로그 정리: 감사 시스템에서의 유출을 방지하기 위해 원시 인젝션 페이로드를 로깅하지 마세요.
    6. API 요청 속도 제한: 블라인드 또는 오류 기반 열거 시도의 영향을 줄이기 위해 고빈도 API 호출을 제한하세요.
    7. 패치 적용: Frappe 유지관리자는 이 엔드포인트를 보호하는 패치를 릴리스하고 다른 frappe.desk 메서드를 감사해야 합니다. 운영자는 패치가 제공되는 즉시 업그레이드해야 합니다.

    🔗 참고 자료

    • 발견자: Mohammed Aloli

      • GitHub: MoAlali
      • X (Twitter): @alaliksa_
    • Frappe Framework: https://github.com/frappe/frappe

    • ERPNext 프로젝트: https://github.com/frappe/erpnext

    • OWASP SQL 인젝션 치트 시트: https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html

    📢 고지 사항

    본 권고는 교육 및 방어적 보안 연구 목적으로만 게시됩니다. 승인 없이 이 취약점을 악용하는 것은 불법이며 비윤리적입니다. ERPNext 또는 Frappe의 개발자 또는 관리자라면 권장 완화 조치를 즉시 적용하고 비정상적인 API 사용을 모니터링하세요.


    도구 다운로드