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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-21627---Tassos-Novarain-Framework-plg_system_nrframework-Exploit---Joomla — Python 익스플로잇 for CVE-2026-21627, Joomla의 Novarain Framework에서 인증 없이 임의의 PHP 파일을 포함할 수 있는 취약점으로, 파일 업로드, 삭제 및 RCE를 가능하게 합니다. | Kitploit
도구/GitHubGitHub/yallasec/cve-2026-21627---tassos-novarain-framework-plg_system_nrframework-exploit---joomla
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubyallasec/cve-2026-21627---tassos-novarain-framework-plg_system_nrframework-exploit---joomla

CVE-2026-21627---Tassos-Novarain-Framework-plg_system_nrframework-Exploit---Joomla

Python 익스플로잇 for CVE-2026-21627, Joomla의 Novarain Framework에서 인증 없이 임의의 PHP 파일을 포함할 수 있는 취약점으로, 파일 업로드, 삭제 및 RCE를 가능하게 합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-21627

Joomla의 Novarain Framework(nrframework)에서의 인증되지 않은 임의 파일 포함

CVSS Joomla Python


개요

Tassos/Novarain Framework(plg_system_nrframework) Joomla 플러그인의 심각한 취약점으로, 인증되지 않은 공격자가 서버의 임의 PHP 파일을 포함하고, 임의 클래스를 인스턴스화하며, 내장 가젯 클래스와 연계하여 임의 파일 업로드 및 임의 파일 삭제를 달성할 수 있습니다 — 모두 인증 없이 가능합니다.

CVE IDCVE-2026-21627
CVSS 점수9.5 (Critical)
플러그인plg_system_nrframework (Tassos Framework / Novarain Framework)
취약한 버전4.10.14 ~ 6.0.37
수정 버전6.0.38+
CMSJoomla 3.x, 4.x, 5.x

nrframework 플러그인은 Tassos.gr의 여러 인기 Joomla 확장 프로그램에 포함되어 있으며, Convert Forms, Engage Box, Google Structured Data 등이 있습니다.

취약점 세부 정보

nrframework.php의 ajaxTaskInclude() 메서드는 $non_admin_tasks 배열을 통해 프론트엔드(비관리자) 접근에 대해 명시적으로 허용 목록에 포함됩니다. 이 메서드는 사용자 제어 가능한 세 가지 매개변수를 허용합니다:

  • path — RAW 입력 필터 사용 (검증 없음, 경로 탐색 가능)
  • file — 기본 Joomla 입력 필터 사용
  • class — 포함 후 인스턴스화할 클래스 이름

연결된 경로 $path . $file . '.php'는 @include_once에 직접 전달되어 임의 PHP 파일 포함이 가능합니다. 포함 후 지정된 클래스가 인스턴스화되고 해당 onAJAX() 메서드가 사용자 제어 매개변수로 호출됩니다.

공격 프리미티브

프리미티브가젯심각도설명
파일 포함ajaxTaskInclude()Critical서버의 모든 .php 파일 포함 가능
파일 삭제JFormFieldNRInlineFileUpload::onRemove()Critical경로 검증 없는 unlink() — 웹 서버가 쓸 수 있는 모든 파일 삭제 가능
파일 업로드JFormFieldNRInlineFileUpload::onUpload()High쓰기 가능한 웹 접근 디렉터리에 텍스트 파일 업로드 가능
경로 노출업로드 응답MediumJSON 응답에서 전체 파일 시스템 경로 유출

사용법

root@kitploit:~
python3 cve_2026_21627.py --target <URL> --mode <MODE> [OPTIONS]

모드

모드설명위험도
verify취약점 존재 여부 확인안전 / 읽기 전용
upload제어된 디렉터리에 파일 업로드중간
delete서버의 임의 파일 삭제파괴적
rce전체 RCE 체인 시도 (업로드 + 실행)높음
info정찰을 위한 임의 PHP 파일 포함중간

예시

취약점 확인:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode verify

개념 증명 파일 업로드:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode upload --shell-type txt

SSI 셸 업로드 (Apache mod_include 필요):

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode upload --shell-type shtml

RCE 체인 시도:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode rce --cmd "id"

파일 삭제 (파괴적):

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode delete --file-path /var/www/html/test.txt

옵션

root@kitploit:~
--target, -t       대상 URL (필수)
--mode, -m         익스플로잇 모드: verify|upload|delete|rce|info (필수)
--sef-prefix       Joomla SEF URL 접두사 (기본값: /it/)
--delay            요청 간 지연 시간(초) (기본값: 2.5)
--proxy            HTTP 프록시 (예: http://127.0.0.1:8080)
--no-ssl-verify    SSL 인증서 검증 비활성화

업로드 모드:
  --shell-type     파일 유형: shtml|csv|txt|html (기본값: shtml)
  --upload-dir     JPATH_ROOT 기준 업로드 디렉터리 (기본값: images)
  --custom-content 업로드할 사용자 지정 파일 내용

삭제 모드:
  --file-path      삭제할 파일의 전체 서버 경로

RCE 모드:
  --cmd            실행할 명령어 (기본값: id)

정보 모드:
  --php-path       JPATH_SITE 기준 PHP 파일 경로
  --php-file       .php 확장자 없는 PHP 파일 이름
  --php-class      인스턴스화할 PHP 클래스

작동 원리

root@kitploit:~
┌──────────────┐    ┌───────────────────┐    ┌─────────────────────┐
│   공격자     │───>│  onAjaxNrframework │───>│  ajaxTaskInclude()  │
│              │    │  (AJAX 라우터)     │    │                     │
│ task=include │    │  include는         │    │ path = RAW 입력     │
│ path=...     │    │  $non_admin_tasks  │    │ @include_once $path │
│ file=...     │    │  (인증 불필요)     │    │ new $class()->onAJAX│
│ class=...    │    └───────────────────┘    └──────────┬──────────┘
└──────────────┘                                        │
                                                        v
                               ┌─────────────────────────────────────┐
                               │  JFormFieldNRInlineFileUpload       │
                               │  (가젯 클래스)                      │
                               │                                     │
                               │  onAjax() ──> onUpload()  [쓰기]    │
                               │           ──> onRemove()  [삭제]    │
                               └─────────────────────────────────────┘
  1. 세션 및 CSRF — Joomla는 세션을 지연 생성합니다. 익스플로잇은 AJAX 엔드포인트를 프로빙하여 세션 생성을 트리거한 다음, 홈페이지 HTML에서 CSRF 토큰을 추출합니다.
  2. 파일 포함 — include 작업이 가젯 파일을 가리키는 제어된 path(RAW 필터 = 검증 없음)로 호출됩니다.
  3. 가젯 실행 — 포함된 JFormFieldNRInlineFileUpload 클래스는 파일 쓰기를 위한 onUpload()와 파일 삭제를 위한 onRemove()를 제공하며, 둘 다 입력 검증이 불충분합니다.

요구 사항

  • Python 3.7+
  • requests 라이브러리
root@kitploit:~
pip install requests

탐지

공격 시도를 위해 액세스 로그 모니터링:

root@kitploit:~
# Apache/Nginx 로그 패턴
grep -E "option=com_ajax.*plugin=nrframework.*task=include" access.log

WAF 규칙 — 다음 패턴과 일치하는 요청 차단:

root@kitploit:~
option=com_ajax.*plugin=nrframework.*task=include.*path=

침해 후 감사:

  • images/ 및 기타 쓰기 가능한 디렉터리에 예상치 못한 파일이 있는지 확인
  • configuration.php 및 .htaccess의 무결성 검증
  • 서버 오류 로그에서 @include_once 경고 검토

해결 방법

  1. nrframework를 즉시 버전 6.0.38 이상으로 업데이트
  2. 패치는 ajaxTaskInclude()를 완전히 제거하고 엄격한 핸들러 레지스트리(AjaxHandlerRegistry)로 대체합니다

타임라인

날짜이벤트
2026-02승인된 침투 테스트 중 취약점 발견
2026-02익스플로잇 제작
2026-02공개 공개

면책 조항

이 도구는 승인된 보안 테스트 및 교육 목적으로만 제공됩니다. 명시적인 서면 허가를 받은 시스템에 대해서만 이 익스플로잇을 사용하십시오. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 작성자는 오용에 대해 어떠한 책임도 지지 않습니다.

작성자

Yallasec — yallasec.com

Arcangelo Saracino — @arkango

도구 다운로드