
واجهة سطر أوامر لاستغلال XSS ومولّد حمولات.
toxssin هي أداة اختبار اختراق مفتوحة المصدر تعمل على أتمتة عملية استغلال ثغرات البرمجة النصية عبر المواقع (Cross-Site Scripting). تتكوّن من خادم https يعمل كمفسّر للحركة المرورية الناتجة عن حمولة JavaScript الخبيثة التي تشغّل هذه الأداة (toxin.js).
بدأ هذا المشروع كمسعى إبداعي قائم على البحث (وما زال كذلك) لاستكشاف مدى قابلية الاستغلال التي قد تُحدثها ثغرة XSS باستخدام JavaScript خام (vanilla JavaScript) وشهادات موثوقة وحِيَل رخيصة.
إخلاء مسؤولية: استخدام هذه الأداة ضد تطبيقات ويب ليس لديك إذن صريح لاختبارها أمر غير قانوني. أنت مسؤول عن أي مشاكل قد تسببها باستخدام هذه الأداة.
https://www.youtube.com/watch?v=Z9I4UJUBrrY

لمزيد من لقطات الشاشة، انظر هنا.
بشكل افتراضي، ينتشر سمّ toxssin تلقائيًا عبر عناصر ومعلومات صفحة الويب، مستغلًا كائن XMLHttpRequest لاعتراض:
الأهم من ذلك، toxssin:
git clone https://github.com/t3l3machus/toxssin
cd ./toxssin
pip3 install -r requirements.txt
لبدء تشغيل toxssin.py، ستحتاج إلى توفير ملفات شهادة ssl ومفتاح خاص.
إذا كنت لا تملك نطاقًا بشهادة موثوقة، يمكنك إصدار واستخدام شهادات موقّعة ذاتيًا باستخدام الأمر التالي (على الرغم من أن هذا لن يوصلك بعيدًا):
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
يُوصى بشدة بتشغيل toxssin بشهادة موثوقة (انظر كيفية الحصول على شهادة صالحة في هذا المستند). ومع ذلك، يمكنك بدء تشغيل خادم toxssin بهذه الطريقة:
python3 toxssin.py -u https://your.domain.com -c /your/certificate.pem -k /your/privkey.pem
قم بزيارة الويكي الخاص بالمشروع لمزيد من المعلومات.
من خلال تجربتي، هناك 4 عقبات رئيسية عندما يتعلق الأمر بهجمات البرمجة النصية عبر المواقع التي تحاول تضمين نصوص JS خارجية:
Content-Security-Policy مع ضبط script-src على نطاقات محددة فقط ستمنع تحميل النصوص البرمجية ذات المصادر عبر النطاقات. تعتمد toxssin على دالة eval() لتقديم سمّها، لذلك، إذا كان الموقع يحتوي على CSP ولم يتم تحديد تعبير المصدر unsafe-eval في توجيه script-src، فمن المرجح أن يفشل الهجوم (أعمل على طريقة ثانية لتقديم السمّ للتغلب على هذا).ملاحظة: يمكن أن يحدث خطأ "Mixed Content" بالطبع عندما يكون الموقع المستهدف مستضافًا عبر http وحمولة JavaScript عبر https. وهذا يحدّ من نطاق toxssin ليشمل مواقع https فقط، حيث (بشكل افتراضي) يتم تشغيل toxssin باستخدام ssl فقط.
أولاً، تحتاج إلى امتلاك اسم نطاق.
يمكنك البحث عن خيارات مجانية على freenom. إنه أمر صعب بعض الشيء لفعله بشكل صحيح. أقترح عليك متابعة هذا الفيديو التعليمي. أيضًا، إذا قمت بإنشاء حساب لأول مرة، تأكد من أن الدولة التي تختارها تطابق عنوان IP الخاص بك أو قد تواجه أخطاء.
قم بشراء نطاق من خدمة تسجيل النطاقات (مثل https://www.namecheap.com/). الطريقة الأكثر اقتصادية هي البحث عن اسم نطاق عشوائي (مثل "fvcm98duf") والتحقق من نطاقات المستوى الأعلى الأقل شيوعًا، مثل .xyz، لأنها ستكلف على الأرجح حوالي 3$ سنويًا.
بعد شراء اسم نطاق، يمكنك استخدام certbot (Let's Encrypt) للحصول على شهادة موثوقة في 5 دقائق أو أقل:
نصيحة: لا تقم بتثبيت وتشغيل certbot بمفردك، فقد تواجه أخطاء غير متوقعة. التزم بالتعليمات.
2022-06-19 - تمت إضافة أمر exec في الموجّه (يمكنك الآن تنفيذ نصوص JS مخصصة ضد جلسة).
2022-06-23 - أضفت نصّين بسيطين وغير مرتبين كقوالب لاختبار أمر exec في الموجّه. كما أصلحت الوصول للخلف في سجل الأوامر وأجريت بعض التحسينات.
الفكرة هي جعله أكثر حدة وموثوقية وتوسيع قدراته. حاليًا، أعمل على تحسين عمليات التقاط الملفات.