जब से मैं अपने मैक पर फ़ाइलों को अनकैप करने में सक्षम हूं, मुझे लगता है कि ये वास्तविक ज़िप फाइलें हैं और न कि केवल नामांकित php फ़ाइलों की तरह कुछ।
जब आप शायद इस मामले में सही होंगे, तो आपकी धारणा हमेशा पकड़ में नहीं आ सकती है। एक ज़िप संग्रह वैध रहता है, भले ही आप इसे करने के लिए मनमाने ढंग से डेटा प्रस्तुत करते हैं , इसलिए यह एक ऐसी फ़ाइल बनाना संभव है जो एक साथ एक वैध ज़िप संग्रह है जिसमें निर्दोष डेटा भी है और एक दुर्भावनापूर्ण PHP स्क्रिप्ट भी है। यह विशेष रूप से कठिन नहीं है; बस PHP कोड और ज़िप फ़ाइल को सम्मिलित करें, और सुनिश्चित करें कि (उदाहरण का उपयोग करते हुए __halt_compiler()
) कि PHP, संग्रहित डेटा को पार्स करने की कोशिश नहीं करेगा।
यह ट्रिक वैध रूप से सेल्फ-एक्सट्रैक्टिंग ज़िप फ़ाइलों को बनाने के लिए उपयोग की जाती है, लेकिन किसी अन्य छिपे हुए डेटा या निष्पादन योग्य कोड को उसी तरह से ज़िप फ़ाइल में प्रस्तुत करना पूरी तरह से संभव है। कुछ प्रोग्राम ऐसी संशोधित ज़िप फ़ाइलों को खोलने से इंकार कर सकते हैं (लेकिन यदि ऐसा है, तो वे तकनीकी रूप से ज़िप प्रारूप युक्ति का उल्लंघन कर रहे हैं), या वे फ़ाइल को डिफ़ॉल्ट रूप से ज़िप फ़ाइल के अलावा किसी अन्य चीज़ के रूप में पहचान सकते हैं, लेकिन आम तौर पर, यदि आप ऐसा फ़ीड करते हैं एक ज़िप फ़ाइल की अपेक्षा कोड में फ़ाइल, यह शायद एक के रूप में स्वीकार किया जाएगा।
इस तरह के टोटकों का एक और सामान्य दुर्भावनापूर्ण उपयोग एक ज़िप-आधारित कंटेनर (उदाहरण के लिए एक JAR फ़ाइल) में हानिरहित कोड (जैसे GIF छवि, जैसे GIFAR शोषण) में शोषण कोड को छिपाने के लिए है , लेकिन ऐसा कोई कारण नहीं हो सकता है दूसरी दिशा में भी उपयोग किया जाता है, उदाहरण के लिए, एक भोली फ़ाइल अपलोड फ़िल्टर को बायपास करने के लिए जो PHP स्क्रिप्ट अपलोड करने से मना करता है, लेकिन ज़िप फ़ाइलों की अनुमति देता है, बिना यह जांचे कि क्या अपलोड की गई फ़ाइल दोनों एक ही समय में हो सकती है।