phar:// deserialization
बग बाउंटी टिप: Intigriti के लिए साइन अप करें, एक प्रीमियम बग बाउंटी प्लेटफॉर्म जो हैकर्स द्वारा बनाया गया है! आज हमारे साथ जुड़ें https://go.intigriti.com/hacktricks और आरंभ करें बाउंटी अप टू $100,000 तक कमाना!
Phar फ़ाइलें (PHP आर्काइव) में सीरीयलाइज़ फॉर्मेट में मेटा डेटा होता है, इसलिए, जब इस मेटाडेटा को पार्स किया जाता है, तो आप एक डिसीरियलाइज़ेशन वंलरेबिलिटी का दुरुपयोग करने की कोशिश कर सकते हैं PHP कोड के अंदर।
इस विशेषता के बारे में सबसे अच्छी बात यह है कि यह डिसीरियलाइज़ेशन भी होगा जब भी PHP फ़ंक्शन का उपयोग किया जाए जो PHP कोड को इवैल नहीं करते हैं जैसे file_get_contents(), fopen(), file() या file_exists(), md5_file(), filemtime() या filesize()।
तो, एक स्थिति की कल्पना करें जहाँ आप एक PHP वेबसाइट को phar://
प्रोटोकॉल का उपयोग करके किसी भी फ़ाइल का आकार प्राप्त करने के लिए कर सकते हैं, और कोड के अंदर आपको निम्नलिखित एक क्लास मिलता है:
आप एक phar फ़ाइल बना सकते हैं जो जब लोड की जाएगी तो इस क्लास का दुरुपयोग करेगी और विविध कमांड्स को निषेधित करेगी कुछ इस प्रकार:
नोट करें कि JPG के जादू के बाइट्स (\xff\xd8\xff
) को फार फ़ाइल के शुरुआत में जोड़ा गया है ताकि संभावित फ़ाइल अपलोड प्रतिबंधों को बायपास किया जा सके।
test.phar
फ़ाइल को कंपाइल करें:
और विकल्प को दुरुपयोग करके whoami
कमांड को निषेधित कोड के माध्यम से क्रियान्वित करें:
संदर्भ
बग बाउंटी टिप: Intigriti में साइन अप करें, एक प्रीमियम बग बाउंटी प्लेटफॉर्म जो हैकर्स द्वारा बनाया गया है! हमारे साथ जुड़ें https://go.intigriti.com/hacktricks आज ही, और शुरू करें बाउंटी अप तक $100,000 तक कमाने की!
Last updated