설치 매뉴얼
PHP2Shell 스캐너는 사내 PHP 웹 자산을 등록하고 PHP2Shell 원격 코드 실행 취약점 (CVE-2026-109618/109619)을 점검하는 앱입니다. 점검은 로그프레소 서버에서 대상 웹 서버로 직접 HTTP 요청을 보내는 방식이라, 앱 설치와 함께 아래 조건이 갖춰져 있어야 합니다.
Note
- 로그프레소 서버에서 점검할 대상의 웹 포트(예: 80, 443, 8080)로 나가는 연결이 허용되어야 합니다.
- 대상 추가, 스캔, 재판정, 삭제는 클러스터 관리자 또는 회사 관리자만 할 수 있습니다.
- 점검은 대상마다 최대 약 29 MiB의 요청을 보냅니다. 점검이 승인된 자산에만 사용하세요.
순서대로 진행하세요.
1. 앱 설치
앱 스토어에서 PHP2Shell 스캐너를 설치합니다.
설치가 끝나면 좌측 메뉴에 스캔 대상, 스캔 결과, 취약점 설명, 스캐너 가이드가 나타납니다. 첫 기동에서 앱이 점검 대상과 스캔 이력을 담을 테이블을 자동으로 만드므로 따로 준비할 것은 없습니다.
2. 네트워크 확인
점검 요청은 로그프레소 서버에서 출발합니다. 로그프레소 서버와 대상 사이에 방화벽이나 프록시가 있다면 다음을 허용해야 합니다.
| 방향 | 대상 | 비고 |
|---|---|---|
| 로그프레소 서버 → 점검 대상 | 웹 서비스 포트(80, 443 등) | 대상 등록 시 루트 페이지 조회와 스캔 요청에 사용 |
웹 방화벽(WAF)이나 리버스 프록시가 대상 앞에 있으면 요청 크기 제한 때문에 판정이 판정 불가로 나올 수 있습니다. 이 경우 점검 기간 동안 로그프레소 서버 주소를 예외로 두는 것이 좋습니다.
3. 권한 확인
| 작업 | 필요한 권한 |
|---|---|
| 화면 조회, 결과 조회, CSV 내보내기 | 로그인한 모든 사용자 |
| 대상 추가, 전체 스캔, 선택 재점검, 재판정, 삭제 | 클러스터 관리자 또는 회사 관리자 |
관리자가 아닌 사용자에게는 쓰기 버튼이 비활성화되어 보이고, 버튼에 마우스를 올리면 사유가 표시됩니다.
4. 설치 확인
대상 하나를 끝까지 점검해 보는 것이 가장 확실합니다.
- 스캔 대상 → URL 추가에서 점검이 승인된 대상의 URL을 입력하고 추가를 누릅니다
- 대상 판정이 끝나면 상태가 응답으로 바뀌고 스킴(http 또는 https)이 채워집니다
- 전체 스캔을 누르고 진행 대화상자에서 완료될 때까지 기다립니다
- 대상의 판정과 PHP 버전이 채워지고, 상단 통계에 반영됩니다
- 스캔 결과 화면에 방금 점검한 결과가 나타납니다
문제가 발생할 때
| 증상 | 원인 | 조치 |
|---|---|---|
| 상태가 응답 없음 | 로그프레소 서버에서 대상 포트로 연결할 수 없음 | 방화벽과 프록시 설정을 확인한 뒤 대상을 선택해 재판정합니다 |
| 추가, 스캔 버튼이 비활성 | 관리자 권한 없음 | 관리자 계정으로 실행합니다 |
| "스캔할 대상이 없습니다" | 응답하는 대상 중 미점검이거나 취약한 대상이 없음 | 다시 점검하려면 대상을 선택해 선택 재점검을 실행합니다 |
| "a scan is already running" | 같은 회사의 스캔이 진행 중 | 진행 중인 스캔이 끝나거나 중지된 뒤 다시 실행합니다 |
| 판정이 판정 불가 | 요청이 PHP에 닿기 전에 거부됨(400, 403, 413 등) | WAF, 프록시의 요청 크기 제한과 차단 정책을 확인합니다 |
설치가 끝났다면 사용 매뉴얼에서 점검 절차를 확인하세요.