공개 사이트를 확인하고 로컬 설정과 로그를 검토하거나 공개 대응 도구를 찾으세요. 각 결과는 근거와 한계를 설명합니다.

01 / URL

내 사이트 확인

본인의 공개 사이트를 입력하세요. 한 페이지와 최대 두 번의 이동에서 PHP 헤더와 플랫폼 단서를 찾습니다. 취약점 악용은 시도하지 않습니다.

선택적 온라인 확인은 주소를 Cloudflare 서비스로 보내 DNS 조회와 일반 GET 요청을 합니다. 쿼리와 프래그먼트는 제거합니다. 수동 버전, 설정과 로그는 브라우저에 남습니다.

PHP / ?

PHP 버전을 모르시나요?

WordPress: 도구 > 사이트 건강 > 정보 > 서버. 패널에서는 기본값 대신 해당 도메인과 PHP 처리기를 선택하세요. SSH의 php -v를 실제 FPM/Apache나 컨테이너와 비교하세요. 사이트, CLI와 복제본은 다를 수 있습니다. phpinfo 페이지를 공개하지 마세요.

02 / LOG

의심스러운 로그 신호 검토

발췌문이나 텍스트 파일을 선택하세요. 메모리 오류, 프로세스 충돌, HTTP 오류와 비정상 PHPSESSID의 횟수와 줄 번호를 표시합니다. 일치가 침입을 증명하지 않으며, 일치가 없어도 배제하지 못합니다.

로컬 한도: 설정 100 KB / 2,000줄, 로그 2 MB / 20,000줄. 업로드하지 않습니다. 결과에는 인식된 설정이나 횟수와 줄 번호만 표시하고 원본 로그와 쿠키 값은 표시하지 않습니다. 완료 후 지우세요.

공격 시도인가, 침입 성공인가? →

03 / PHP INI

PHP 설정 검토

php.ini 또는 FPM 풀 설정을 붙여 넣으세요. 텍스트만 분석하므로 상속, 요청별 변경과 실제 적용 여부는 알 수 없습니다. 패치를 대체하지 않습니다.

로컬 한도: 설정 100 KB / 2,000줄, 로그 2 MB / 20,000줄. 업로드하지 않습니다. 결과에는 인식된 설정이나 횟수와 줄 번호만 표시하고 원본 로그와 쿠키 값은 표시하지 않습니다. 완료 후 지우세요.

메모리와 재활용의 한계 →

GitHub 대응 도구 목록

Apache-2.0

OpenAI PHP 검사기

Apache-2.0. 로컬 또는 공개 헤더의 버전 목록을 만드는 Node.js 도구로 JSON을 지원합니다. 승인된 자산에서 README를 읽고 사용하세요. 숨긴 헤더, 백포트와 CLI/Web 차이가 한계이며 악용 불가 증명이 아닙니다.

openai/php2shell-checker ↗
BSD-3-Clause

Corelight Zeek / Suricata

BSD-3-Clause. 방어 규칙이며 Zeek 7+는 요청/세션 상관과 별도 버전 목록을 제공합니다. Zeek 설치는 Suricata를 로드하지 않습니다. 설정, TLS 가시성과 오탐을 확인하고 notice_body_sample_bytes=0으로 민감 본문 샘플을 끄세요.

corelight/php2shell-detect ↗
EUPL-1.2

NCSC-NL 대응 정보

EUPL-1.2. 책임자와 공급업체 패치를 추적하는 대응 자료와 소프트웨어 목록입니다. 자동 일괄 스캐너가 아니며 목록은 불완전할 수 있습니다. 자체 패키지/배포 증거를 보존하세요.

NCSC-NL/php2shell ↗
Apache-2.0

Trivy 이미지와 SBOM

Apache-2.0. 내장 PHP와 재빌드를 확인하는 일반 이미지/패키지 목록 및 취약점 도구입니다. DB, 식별과 공급업체 데이터에 의존하며 깨끗한 보고서는 두 PHP2Shell 패치를 증명하지 못합니다.

aquasecurity/trivy ↗
MIT

Composer audit

MIT. Composer 앱 의존성 공지를 확인합니다. PHP 인터프리터는 Composer 라이브러리가 아닙니다. 정상 audit는 PHP 업데이트, 호스트 조사나 침입 배제가 아닙니다.

composer/composer ↗
MIT

Syhunt Apache 예제

MIT. 커뮤니티 요청 제한과 multipart 차단 예제입니다. 부분 경로만 다루고 업로드를 망칠 수 있으므로 시험하세요. Apache php_value를 CGI/FastCGI에 그대로 쓸 수 없습니다. 검토된 임시 조치로만 쓰세요.

syhunt/php2shell-protection ↗

무료 스캐너가 침입을 입증하나요?

확정할 수 없습니다. 헤더와 패턴은 전체 런타임, 잃은 이력과 메모리 유출을 보지 못합니다. 목록 작성, 증거 보존, 로그 연결부터 시작하세요. 무단 계정, 프로세스나 설명 안 되는 유출이 있으면 격리하고 호스팅/대응팀에 연락하세요.

호스팅 업체에 증거 요청

호스팅 업체에 보낼 확인 메시지
제 도메인의 Web PHP에 CVE-2026-109618 및 CVE-2026-109619 두 수정이 모두 적용됐는지 확인해 주세요. 전체 패키지/빌드 버전, 공급업체 공지나 변경 기록, 모든 FPM/Apache 작업자, 복제본 및 상주 프로세스의 교체/재시작 확인이 필요합니다. 보관된 접근, PHP와 프로세스 로그도 검토할 수 있나요?

일차 출처 및 추가 자료

PHP security team원문 읽기 ↗CVE-2026-109618원문 읽기 ↗CVE-2026-109619원문 읽기 ↗

연구 해설과 실용 가이드

>_

PHP2Shell 도구

공개 사이트를 확인하고 로컬 설정과 로그를 검토하거나 공개 대응 도구를 찾으세요. 각 결과는 근거와 한계를 설명합니다.

01

PHP2Shell 쉽게 이해하기

PHP는 WordPress, Laravel과 플러그인을 실행하는 엔진입니다. 플러그인 업데이트는 PHP를 업데이트하지 않습니다. 두 메모리 결함은 비정상 요청 정리를 정보 유출이나 코드 실행으로 바꿀 수 있습니다. 공개 확인은 단서만 제공하며 실제 Web 런타임과 패치는 관리자가 확인해야 합니다.

02

공격 시도인가, 침입 성공인가?

이상 multipart나 WAF 경고는 시도일 수 있습니다. OOM, SIGSEGV/SIGABRT와 HTTP 500 급증에는 정상 장애 원인도 있습니다. 예기치 않은 PHP 자식 프로세스, 외부 연결, 파일 변경과 계정은 조사해야 합니다. 메모리 유출은 웹셸이나 파일을 남기지 않을 수 있어 깨끗한 파일 검사로 배제할 수 없습니다.

03

변경 전 증거 보존

발견 시간, 도메인, 인스턴스, 런타임, 증상과 마지막 신뢰 상태를 기록하세요. 원본 로그와 시간대, 클라우드 감사, 승인된 스냅샷을 보존하고 접근을 제한해 해시를 남기세요. 쿠키, 토큰과 고객 데이터를 공개 스캐너에 보내지 마세요. 보존 전 로그나 의심 파일을 삭제하지 마세요.

04

Wiz와 Calif 정확히 읽기

연구는 요청을 넘어 남는 오류를 설명합니다. CVE-2026-109618은 mod_php RCE를 실증했고 FPM은 소스 분석상 영향으로, 이 CVE의 완전한 FPM 공격 실증은 없습니다. CVE-2026-109619는 앱 의존 FPM upload-progress 경로를 별도로 확인합니다. SAPI별 근거는 각 GHSA에서 확인하세요.

05

Cloudflare: 응답도 중요함

Cloudflare는 요청과 원본 응답을 결합해 유출 전 의심 응답을 차단하는 방법을 설명합니다. 셸이 없어도 의미가 있습니다. 과거 배포 시간이 내 계정 보호를 보장하지 않으므로 규칙, 경로, 예외와 이벤트를 확인하세요. 직접 원본과 프록시 밖 호스트도 패치해야 합니다.