Apache PHP स्क्रिप्ट पर XSS भेद्यता

Dec 09 2020

मेरे पास दो CentOS8 सर्वर हैं जो Apache को MOD_PHP के साथ चलाते हैं। हमें पता चला है कि यूआरएल के अंत में स्लैश को जोड़ने से स्क्रिप्ट में XSS भेद्यता पैदा करने के लिए बेस-यूरी में बदलाव होता है।
उदाहरण के लिएhttp://myserver.com/Login.php/ या http://myserver.com/Login.php/extra_stuff/रिश्तेदार लिंक और छवियों के गलत होने के लिए आधार- uri का कारण बनता है। यदि extra_stuff में जावास्क्रिप्ट है, तो आप संभावित रूप से पृष्ठ पर सामग्री बदल सकते हैं।

यदि मैं अनुगामी स्लैश के रूप में पीएचपी स्क्रिप्ट का इलाज करने से अपाचे को रोक देता हूं, यदि उनके पास एक अनुगामी स्लैश है और 404 लौटाता है? मैं नहीं बल्कि टैग जोड़ने के लिए हर एक पृष्ठ को संपादित करना होगा।

क्या मुझे भ्रमित करता है कि नीचे का अपाचे विन्यास एक PHP स्क्रिप्ट को एक अनुगामी स्लेश और बाहरी पात्रों के साथ क्यों मेल खाता है जब यह वास्तव में मौजूद नहीं है, और इसे हैंडलर पर भेज रहा है।

FilesMatch \.(php|phar)$>
    SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>

जवाब

JackHandy42 Dec 10 2020 at 22:08

जैसा @CBroe एक टिप्पणी में बताते हैं :

जब तक आप सक्रिय रूप से अनुरोध URL पथ को सक्रिय रूप से आउटपुट नहीं करते हैं, तब तक मैं यह नहीं देखता कि यह कोई भेद्यता कैसे पैदा करेगा। सिर्फ इसलिए कि यूआरएल है http://myserver.com/Login.php/extra_stuff/और कहा कि परोक्ष आधार URL सब सापेक्ष URL के खिलाफ हल होगा, किसी भी जावा स्क्रिप्ट कोड मतलब यह नहीं है वहाँ निष्पादित हो जाएगा। जब आप किसी भी उपचार और विचार के बिना दस्तावेज़ में URL सम्मिलित करते हैं, तो यह निश्चित रूप से एक XSS मुद्दा हो सकता है।

AcceptPathInfo व्यवहार की व्याख्या करता है। वेंडर्स कोड में वास्तव में $ _Server ["PHP_SELF"] के बहुत से असंगठित उपयोग हैं, जिन्हें मैंने ठीक किया है।