
PHAR Deserialization Vulnerability
·
보안/웹
PHAR(PHP Archive) 구조PHAR 파일은 4가지의 구조로 이루어져있다. Stub작은 형태의 코드를 담을 수 있는 공간__HALT_COMPILER(); 코드가 있어야 PHAR 파일로 인식Stub을 지정하지 않으면 약 7KB 코드가 기본값으로 설정됨 Manifest해당 PHAR 내부 파일에 대한 메타데이터 저장setMeta(mixed $metadata) 함수를 통해 설정 가능 File ContentsPHAR 내 데이터 영역 Signature(Optional)PHAR에 대한 시그니처 그 중 PHAR Manifest의 각 파일에는 다음 정보가 포함되어 있으며 마지막 바이트 부분에서 직렬화 포맷을 사용하고 있다. 따라서, 공격자는 Manifest의 serialize 영역에 의도적인 PHP 객체 페이로드..