
हेडलेस क्रोम का उपयोग करके प्रोटोटाइप प्रदूषण स्कैनर

Plution बड़े पैमाने पर उन पृष्ठों को स्कैन करने का एक सुविधाजनक तरीका है जो URL पेलोड के माध्यम से क्लाइंट-साइड प्रोटोटाइप प्रदूषण के प्रति संवेदनशील हैं। डिफ़ॉल्ट कॉन्फ़िगरेशन में, यह एक हार्डकोडेड पेलोड का उपयोग करेगा जो यहाँ दस्तावेजित मामलों में से 11 का पता लगा सकता है: https://github.com/BlackFan/client-side-prototype-pollution/tree/master/pp
यह एक वन-स्टॉप शॉप नहीं है। प्रोटोटाइप प्रदूषण एक जटिल प्राणी है। यह उपकरण ऐसा कुछ नहीं करता जो आप मैन्युअल रूप से नहीं कर सकते। यह एक पॉलिश, बग-मुक्त सुपर टूल नहीं है। यह कार्यात्मक है लेकिन खराब तरीके से कोडित है और इसे अधिकतम अल्फा माना जाना चाहिए।
Plution एक पेलोड को आपूर्ति किए गए URL में जोड़ता है, हेडलेस क्रोम के साथ प्रत्येक URL पर नेविगेट करता है और यह सत्यापित करने के लिए पृष्ठ पर जावास्क्रिप्ट चलाता है कि क्या प्रोटोटाइप सफलतापूर्वक दूषित हुआ था।
मूल स्कैन, केवल स्क्रीन पर आउटपुट:
cat URLs.txt | plution
हार्डकोडेड के बजाय आपूर्ति किए गए पेलोड के साथ स्कैन करें:
cat URLs.txt|plution -p '__proto__.zzzc=example'
कस्टम पेलोड पर नोट: जिस वेरिएबल को आप इंजेक्ट करना चाहते हैं उसे 'zzzc' कहा जाना चाहिए या वह 'zzzc' में रेंडर होना चाहिए। ऐसा इसलिए है क्योंकि प्रत्येक पृष्ठ पर प्रदूषण सत्यापित करने के लिए 'window.zzzc' चलाया जाएगा।
आउटपुट:
'-o' और उसके बाद एक स्थान पास करने से केवल उन पृष्ठों के URL आउटपुट होंगे जो सफलतापूर्वक दूषित हुए।
समवर्तीता:
समवर्ती जॉब्स की संख्या निर्दिष्ट करने के लिए '-c' विकल्प पास करें (डिफ़ॉल्ट 5 है)
मैं इसे कैसे स्थापित करूं?
go get -u github.com/raverrr/plution
विशेष रूप से window.zzzc परिभाषित है या नहीं, यह जाँचने तक सीमित क्यों?
zzzc एक छोटा पैटर्न है जिसके प्रोटोटाइप में पहले से होने की संभावना नहीं है। यदि आप जावास्क्रिप्ट के संबंध में अधिक स्वतंत्रता चाहते हैं तो इसके बजाय https://github.com/detectify/page-fetch का उपयोग करें
कोई और विशिष्ट प्रश्न है?
मुझसे ट्विटर पर @divadbate पर पूछें।