
NodeXP - أداة حقن جافاسكريبت من جهة الخادم قادرة على اكتشاف واستغلال ثغرات Node.js
NodeXP هي أداة متكاملة، مكتوبة بلغة Python 2.7، قادرة على كشف الثغرات المحتملة في خدمات Node.js وكذلك استغلالها بطريقة آلية، استنادًا إلى هجوم الحقن في JavaScript من جانب الخادم (SSJI)!
قم بتنزيل NodeXP عن طريق استنساخ مستودع Git:
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.
أولاً، يجب عليك تثبيت حزمتي 'body-parser' و 'express' في دليلي GET و POST.
انتقل إلى دليل '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" كمحدد قادر على إيقاف تحليل وحقن الحمولات، لكل من حالات الحقن الأعمى والقائم على النتائج.
يمكن لكل مستخدم صيانة وتحديث ملفات النصوص الحمولية بحمولاته الخاصة، طالما يتبع الإرشادات أعلاه.
الغرض من الأداة هو أكاديمي بحت وتم تطويرها من أجل إجراء رسالة الماجستير الخاصة بي. كما قد تكون مفيدة أثناء عملية اختبار الاختراق لخدمات Node.js. أي استخدام ضار أو غير قانوني آخر للأداة لا يُنصح به بشدة ومن الواضح أنه ليس جزءًا من غرض هذا البحث.
NodeXP - الإصدار 1.2.2