최근 게시물
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 Wrapper, php://filter를 이용한 LFI2RCE 기법: PART 1
Web Security
2025/02/10

PHP 래퍼(php://filter)를 이용한 LFI2RCE
악성코드가 포함된 파일을 업로드하거나 로그 파일을 통해 PHP 코드를 입력하는 방식은 웹 서버의 파일 시스템에 직접적인 접근이 필요하다는 제약이 있습니다. 또한, 웹 서버의 보안 정책이나 설정에 따라 파일 시스템 접근이 제한되어 있을 수 있으며 로그 파일의 위치가 다르거나 접근 권한이 없는 경우도 많습니다.
하지만, PHP 래퍼(php://filter)를 활용하면 파일 시스템 접근 권한이나 로그 파일 위치와 같은 제약 사항에 구애받지 않고 공격을 수행할 수 있습니다.
php://filter 래퍼의 동작 방식
PHP Wrapper, php://filter를 이용한 LFI2RCE 기법: PART 2
Web Security
2025/02/10
Introduction
DNS Rebinding(DNS 리바인딩)은 보안 공격 기술 중 하나로, 공격자가 악의적인 DNS 서버를 통해 피해자의 웹 브라우저를 속여 내부 네트워크나 비공개 IP 주소로의 접근을 유도하는 방법입니다. 이를 통해 브라우저의 동일 출처 정책(SOP, Same Origin Policy)을 우회하고 내부 네트워크의 리소스에 무단으로 접근하여 데이터를 탈취하거나 조작할 수 있습니다.
How It Works
공격자는 자신이 소유하고 있는 도메인(e.g. attacker.com)의 DNS 레코드를 제어할 수 있습니다. 여기서는 도메인 주소에 대한 IP 주소(=호스트 주소) 즉, A 레코드에 1.1.1.1 이 설정되어 있습니다.
이후 피해자가 브라우저를 통해 URL attacker.com 에 접속하면, 해당 도메인의 IP 주소가 DNS 캐시에 없기 때문에 DNS 질의(A 레코드)가 발생합니다. 그러면 DNS Resolver 로부터 도메인 attacker.com 의 호스트 주소인 1.1.1.1 을 응답받게 됩니다.
참고로 IP 주소를 반환할 때 TTL(Time To Live) 값을 짧게 설정하여 DNS 캐시가 빨리 만료되도록 합니다. 그 이유는 DNS 캐시가 빨리 만료되어야 공격자가 원하는 시점에 DNS 응답을 다른 IP 주소(예: 내부 네트워크 주소)로 변경할 수 있기 때문입니다.
DNS Resolver 란?
DNS Resolver 는 DNS 서버와 통신하여 도메인 이름에 대한 IP 주소를 찾아주는 중요한 역할을 합니다. 그러나 공격자는 자신의 도메인의 DNS 레코드를 제어할 수 있으므로 NS 레코드에 악의적인 DNS 서버(1.2.3.4)를 설정하여 자신이 원하는 대로 DNS 응답을 조작할 수 있습니다. 이러한 DNS 서버는 공격자가 의도한 대로 DNS 질의에 대한 응답을 변조할 수 있으며, 이는 DNS Rebinding 공격의 핵심 메커니즘이 됩니다.
그 다음 피해자의 브라우저는 공격자 웹 서버(1.1.1.1)로 부터 악성 JavaScript 코드가 포함된 웹 페이지를 받게 됩니다. 이 JavaScript 코드는 피해자의 브라우저에서 실행 되며, 주기적으로 도메인을 재요청(Rebinding)하여 DNS Rebinding 공격을 수행하게 됩니다.
이후 피해자의 DNS 캐시가 만료되면 피해자의 시스템은 다시 공격자의 DNS Resolver 로 DNS 질의(A 레코드)를 수행하게 됩니다. 이때 공격자는 자신의 도메인(attacker.com)의 A 레코드에 대해 내부 네트워크 주소 192.0.0.1 을 반환합니다.
그 결과, 피해자의 브라우저는 공격자가 변경한 DNS 응답에 따라 동일한 도메인(attacker.com)을 통해 내부 네트워크 주소(192.0.0.1)에 연결되어 내부 시스템에 접근하게 됩니다. 브라우저의 동일 출처 정책(SOP)은 도메인 이름만을 검사하므로, IP 주소가 변경되더라도 같은 도메인(attacker.com)으로 인식되어 접근이 허용됩니다.

How to Prevent
DNS Pinning
DNS Rebinding: 공격 원리 이해 및 실습
Web Security
2025/01/11