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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-82222 — GiveWP <= 4.16.7.1 인증되지 않은 PHP 객체 주입 → RCE | Kitploit
도구/GitHubGitHub/r0x19/cve-2026-82222
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubr0x19/cve-2026-82222

CVE-2026-82222

GiveWP <= 4.16.7.1 인증되지 않은 PHP 객체 주입 → RCE

저장소 보기
1520일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-82222 — GiveWP <= 4.16.7.1 인증되지 않은 PHP 객체 주입 → RCE

작성자: Rx019
CVSS: 10.0 (치명적)
유형: 인증되지 않은 PHP 객체 주입 → 원격 코드 실행
플러그인: GiveWP (give) — 기부 플러그인 및 펀드레이징 플랫폼
영향 버전: <= 4.16.7.1
패치 버전: 4.16.8


설명

GiveWP는 기부자의 last_name을 검증 없이 PHP 세션에 저장합니다. give_last 필드 없이 기부가 제출되면, GiveWP는 데이터베이스의 원시 값을 세션에 직접 역직렬화합니다. 이를 통해 인증되지 않은 공격자가 기부자 프로필 엔드포인트를 통해 last_name에 PHP 직렬화 객체를 주입한 후, 조작된 기부를 제출하여 역직렬화를 트리거할 수 있습니다. 결과적으로 GiveWP에 번들된 벤더 라이브러리에 존재하는 사전 구축된 POP 체인을 통해 임의 명령 실행이 가능해집니다.


POP 체인

root@kitploit:~
TCPDF::__destruct()
  └─ Session::getBag()           ← $attributeName으로 명명된 메서드 호출
       └─ DonationFactory::__call()
            └─ system($command)   ← $attributeName에서 가져온 $command

사용된 벤더 클래스:

클래스파일
TCPDFvendor/tecnickcom/tcpdf/tcpdf.php
Give\Vendors\Symfony\...\Sessionvendor/symfony/http-foundation/Session/Session.php
Give\TestData\Factories\DonationFactorysrc/TestData/Factories/DonationFactory.php

공격 흐름

root@kitploit:~
1. 기부자로 등록         → 인증된 세션 (wp-login 쿠키)
2. POST /wp-admin/profile.php
   last_name = system() 명령이 포함된 직렬화된 TCPDF 체인
3. POST /wp-admin/admin-ajax.php
   action=give_process_donation  (give_last 필드 생략)
   → GiveWP가 DB에서 last_name을 읽어 원시 객체를 세션에 기록
4. GET /?p={form_id}
   → PHP 세션 종료 시 TCPDF::__destruct() 실행
   → POP 체인이 system(command) 실행
5. 셸 / 관리자 생성 확인

요구 사항

root@kitploit:~
pip install requests rich

Python >= 3.9


파일

파일설명
CVE-2026-82222.py단일 대상 PoC — 상세 단계별 출력
CVE-2026-82222-MASS.py대량 스캐너 — 스레드 기반 배치 모드

사용법

단일 대상

root@kitploit:~
python CVE-2026-82222.py

대화형 프롬프트:

root@kitploit:~
  Target URL: https://victim.com

또는 직접 지정:

root@kitploit:~
python CVE-2026-82222.py https://victim.com

대량 스캐너

root@kitploit:~
# 파일에서 배치 실행
python CVE-2026-82222-MASS.py -f targets.txt

# 사용자 지정 스레드 수
python CVE-2026-82222-MASS.py -f targets.txt -t 10

# 여러 대상 인라인 지정
python CVE-2026-82222-MASS.py https://site1.com https://site2.com

# 대화형 메뉴
python CVE-2026-82222-MASS.py

배치 파일 형식:

root@kitploit:~
# #으로 시작하는 줄은 무시됨
https://target1.com
https://target2.com
target3.com          # 프로토콜이 https://로 자동 추가됨
http://target4.com

출력

단일 모드

root@kitploit:~
╭─ CVE-2026-82222 | Rx019 ─────────────────────────────╮
│                                                        │
│  PWNED (shell + direct)  https://victim.com           │
│  Version : 4.15.0                                     │
│  WAF     : Wordfence                                   │
│  Shell   : https://victim.com/wp-content/uploads/...  │
│  Method  : shell + direct (no .php write needed)       │
│  Admin   : rxadm3f91:RxAdm!k2m9xp7 ([email protected]) │
│                                                        │
╰────────────────────────────────────────────────────────╯

배치 요약

root@kitploit:~
  Vulnerable : 12   Partial : 3   Patched : 44   Not Vuln : 21   Errors : 2   Total : 82

결과는 ~/Documents/CVE/CVE-2026-82222/에 저장됩니다:

파일내용
CVE-2026-82222_YYYYMMDD_HHMMSS.txt단일 실행 결과
CVE-2026-82222_batch_YYYYMMDD_HHMMSS.txt전체 배치 결과
success_results.txtVULN/PARTIAL 줄 추가 기록

공격 경로

이 익스플로잇은 두 가지 주요 경로를 순차적으로 시도합니다:

경로 A — 직접 관리자 생성 (셸 파일 작성 없음)

  1. wp_create_user() PHP 코드를 base64로 인코딩하여 TCPDF 체인에 주입
  2. 체인 실행 — GiveWP가 서버 측에서 코드를 실행
  3. 생성된 관리자로 로그인하여 확인
  4. WordPress 플러그인/테마 파일 편집기를 통해 셸 드롭

경로 B — GiveWP 체인 셸 드롭

경로 A가 실패하거나 관리자 로그인을 확인할 수 없을 때 사용합니다.

  1. 새 기부자 세션 등록 (새 PHP 세션 파일 — 경로 A의 워커로 인한 잠금 경합 방지)
  2. 프로필 엔드포인트를 통해 last_name에 셸 드롭 명령 주입
  3. 세션 오염 (give_last 없이 기부)
  4. 역직렬화 트리거 (/?p={form_id})
  5. 업로드/플러그인/테마 디렉터리에서 셸 존재 확인
  6. 대체: 업로드 디렉터리의 .txt 파일에 id | tee 비콘 전송

경로 C — 셸을 통한 관리자 생성

셸이 확인되었지만 관리자가 아직 없는 경우, 웹셸의 ?c= 파라미터를 통해 wp_create_user()를 사용하여 셸로 관리자를 생성합니다.


WAF 대응

WAF전략
Imunify360X-Forwarded-For / X-Real-IP 스푸핑 헤더 제거
Wordfence풀에서 User-Agent 순환
CloudflareAccept-Encoding: gzip, deflate, br 설정

참고 사항

  • 익스플로잇은 GiveWP에 게시된 기부 양식이 최소 1개 이상 있어야 합니다
  • 대상 사이트에서 등록이 활성화되어 있어야 합니다 (WordPress 코어 설정)
  • PHP-FPM 워커 풀 배출: 직접 관리자 체인 실행 후 30초 대기 시간이 삽입되어 세션을 보유한 워커가 후속 요청 전에 해제되도록 합니다
  • wp-config.php의 DISALLOW_FILE_EDIT는 플러그인/테마 편집기 벡터를 차단합니다 — 스크립트는 이를 조기에 감지하고 경로 B로 전환합니다
  • 셸 파일명: Rx{100-999}.php — 실행마다 무작위 생성

면책 조항

이 도구는 승인된 보안 테스트 및 연구 목적으로만 배포됩니다.
소유한 시스템 또는 명시적 서면 허가를 받은 시스템에만 사용하십시오.
무단 사용은 불법이며 비윤리적입니다.

도구 다운로드