Search

Introduction
이번에 WordPress 플러그인 WordPress File Upload의 4.24.12 이하 버전에서 발생하는 원격 코드 실행(RCE, Remote Code Execution) 취약점(CVE-2024-11635) 분석을 진행했습니다.
해당 취약점을 분석하는 과정에서 Exploit을 수행하기 위해 PHP Wrapper 중 php://filter 스트림을 이용 했는데, 이를 활용한 LFI2RCE(Local File Inclusion to Remote Code Execution) 기법에 대해 자세히 알아보겠습니다.
PHP Wrapper 란?
PHP에서는 다양한 데이터 소스(파일, HTTP 요청, FTP 서버, 압축 파일 등)에 대한 일관된 접근 방식을 제공하기 위해 Stream Wrapper 라는 개념을 도입했습니다. 이 스트림 래퍼는 데이터 소스에 접근하기 위한 URL 스타일의 표기법을 사용하며, 프로토콜과 유사한 방식으로 리소스를 식별하고 처리합니다.
Wrapper 종류
Wrapper는 기본적으로 여러 가지 스트림 래퍼를 제공합니다. 해당 래퍼들을 보면 모두 URL 스타일 표기법을 사용하는 것을 볼 수 있으며, 각각의 래퍼는 특정 프로토콜을 나타내는 접두사와 그 뒤에 오는 리소스 경로로 구성되어 있습니다.
예를 들어, 로컬에 있는 파일을 읽을 때는 아래와 같이 사용합니다.
또한, HTTP 요청을 보낼 때는 다음과 같이 사용할 수 있습니다.
PHP Wrapper, php://filter를 이용한 LFI2RCE 기법: PART 1

Web Security
2025/02/10