
NodeXP - एक सर्वर-साइड जावास्क्रिप्ट इंजेक्शन उपकरण जो Node.js कमजोरियों का पता लगाने और उनका शोषण करने में सक्षम है
NodeXP एक एकीकृत उपकरण है, जो Python 2.7 में लिखा गया है, जो Node.js सेवाओं पर संभावित कमजोरियों का पता लगाने और साथ ही S(erver)S(ide)J(avascript)I(njection) हमले के आधार पर उन्हें स्वचालित रूप से शोषण करने में सक्षम है।
Git रिपॉजिटरी को क्लोन करके NodeXP डाउनलोड करें:
git clone https://github.com/esmog/nodexp
सभी विकल्पों की सूची प्राप्त करने के लिए चलाएँ:
python2.7 nodexp -h
POST और GET मामलों के लिए उदाहरण क्रमशः:
python2.7 nodexp.py --url="http://nodegoat.herokuapp.com/contributions" --pdata="preTax=[INJECT_HERE]" -c="connect.sid=s:i6fKU7kSLPX1l00WkOxDmEfncptcZP1v.fy9whjYW0fGAvbavzYSBz1C2ZhheDuQ1SU5qpgVzbTA"
python2.7 nodexp.py --url="http://nodegoat.herokuapp.com/contributions" --pdata="preTax=[INJECT_HERE]" -c="connect.sid=s:i6fKU7kSLPX1l00WkOxDmEfncptcZP1v.fy9whjYW0fGAvbavzYSBz1C2ZhheDuQ1SU5qpgVzbTA" --tech=blind
python2.7 nodexp.py --url="http://192.168.64.30/?name=[INJECT_HERE]" -c="connect.sid=s:i6fKU7kSLPX1l00WkOxDmEfncptcZP1v.fy9whjYW0fGAvbavzYSBz1C2ZhheDuQ1SU5qpgVzbTA"
python2.7 nodexp.py --url="http://192.168.64.30/?name=[INJECT_HERE]" -c="connect.sid=s:i6fKU7kSLPX1l00WkOxDmEfncptcZP1v.fy9whjYW0fGAvbavzYSBz1C2ZhheDuQ1SU5qpgVzbTA" --tech=blind
NodeXP से परिचित होने के लिए आपको दी गई Node.js परीक्षण सेवाओं (/testbeds) को सेट करने और टूल का उपयोग शुरू करने की आवश्यकता हो सकती है। Node.js सर्वर चलाने वाली एक स्थानीय मशीन आवश्यक होगी।
सबसे पहले, आपको GET और POST निर्देशिकाओं में 'body-parser' और 'express' पैकेज स्थापित करने चाहिए।
अपनी स्थानीय मशीन पर 'testbeds/GET' निर्देशिका पर जाएँ और नीचे दिया गया कमांड टर्मिनल में पेस्ट करें:
npm install express --save
'testbeds/POST' निर्देशिका पर जाएँ और नीचे दिए गए कमांड टर्मिनल में पेस्ट करें:
npm install body-parser --save
nmp install express --save
पैकेजों की सही स्थापना के बाद आप प्रत्येक सेवा को 'node' कमांड और वांछित js फ़ाइल (जैसे node eval.js) चलाकर चला सकते हैं।
आपके सर्वर के चालू होने के बाद, आप NodeXP चलाने और उन सेवाओं पर इसका परीक्षण करने के लिए तैयार हैं!
GET मामले का उदाहरण नीचे दिखाया गया है:
python2.7 nodexp.py --url=http://localiprunningnodejsserver:3001/?name=[INJECT_HERE]
POST मामले का उदाहरण नीचे दिखाया गया है:
python2.7 nodexp.py --url=http://localiprunningnodejsserver:3001/post.js --pdata=username=[INJECT_HERE]
ब्लाइंड और रिज़ल्ट्स बेस्ड इंजेक्शन तकनीक दोनों द्वारा उपयोग किए गए पेलोड "/files/blind_payloads.txt" और "/files/payloads.txt" में संग्रहीत हैं।
पेलोड टेक्स्ट फ़ाइलों की हर विषम पंक्ति संख्या में लिखे गए हैं और, रिज़ल्ट्स बेस्ड इंजेक्शन के मामले में, उनके अपेक्षित प्रतिक्रियाएँ "payloads.txt" फ़ाइल की हर सम पंक्ति संख्या में अल्पविराम से अलग की गई सूची के रूप में लिखी गई हैं। "blind_payloads.txt" फ़ाइल की सम पंक्ति संख्याएँ खाली हैं।
इंजेक्शन की प्रक्रिया को रोकने के लिए, "---end(nextline)---end" का उपयोग एक सीमांकक के रूप में किया जाता है जो ब्लाइंड और रिज़ल्ट बेस्ड इंजेक्शन दोनों मामलों के लिए पेलोड को पार्स और इंजेक्ट करना बंद करने में सक्षम है।
प्रत्येक उपयोगकर्ता उपरोक्त निर्देशों का पालन करने की शर्त पर अपने स्वयं के पेलोड के साथ पेलोड txt फ़ाइलों का रखरखाव और अद्यतन कर सकता है।
उपकरण का उद्देश्य पूरी तरह से शैक्षणिक है और इसे मेरी मास्टर थीसिस के संचालन के लिए विकसित किया गया था। यह Node.js सेवाओं पर पैठ परीक्षण की प्रक्रिया के दौरान भी सहायक हो सकता है। उपकरण का कोई अन्य दुर्भावनापूर्ण या अवैध उपयोग दृढ़ता से अनुशंसित नहीं है और स्पष्ट रूप से इस शोध के उद्देश्य का हिस्सा नहीं है।
NodeXP - संस्करण 1.2.2