
مقتطفات تويتر القابلة للاستغلال
الثغرات | لغات البرمجة | تشغيل مقتطف كود قابل للاختراق | التثبيت | التحديث
تقدم YesWeHack مقتطفات كود تحتوي على العديد من الثغرات المختلفة لتمارين تحليل الكود في بيئة Docker معزولة وآمنة. مقتطفات الكود القابلة للاختراق مناسبة لجميع مستويات المهارة.
~ مقتطف كود قابل للاختراق جديد على تويتر @yeswehack كل يوم جمعة! 🗒
إذا كنت تريد رؤية شيء مميز أو كانت لديك فكرة عن مقتطف كود قابل للاختراق، فلا تتردد في إنشاء «Issue جديدة» تشرح فيها فكرتك، لا توجد فكرة غبية.
⚠️ انتبه
تأكد من تشغيل هذا في بيئة آمنة، لأن الكود قابل للاختراق ومخصص لتعلم تحليل الكود! افتراضيًا، تحتوي جميع مقتطفات الكود القابلة للاختراق على إعداد Docker يعزل الكود عن نظامك المضيف ويجعله آمنًا للتشغيل (اقرأ المزيد في القسم: «تشغيل مقتطف كود قابل للاختراق»).
مجموعة من جميع مقتطفات الكود القابلة للاختراق التي ننشرها على تويتر 📂
يتضمن أيضًا
يوجد في كل مجلد من مجلدات مقتطفات الكود القابلة للاختراق (Vsnippet) ملف docker-compose.yml. لتشغيل Vsnippet في بيئة Docker معزولة، ما عليك سوى تنفيذ الأمر التالي:
docker compose up --build
أو
docker-compose up --build
git clone https://github.com/yeswehack/vulnerable-code-snippets.git
للحصول على أحدث مقتطفات الكود القابلة للاختراق، نفّذ:
git pull
~ H4v3 y0u f0und th3 E4st3r 3gg y3t? 🐇🪺
للاستفسارات أو المساعدة أو إذا اكتشفت مشكلة في الكود، تواصل معنا على تويتر: @yeswehack 📬
| المعرّف | الثغرة | الوصف |
|---|
| 📜#1 | SQLi & XSS | تصادم فلتر الخط المائل العكسي |
| 📜#2 | وصول غير سليم للملفات & XSS | حرف غير صالح والتحقق عبر regex |
| 📜#3 | حقن تزوير السجلات، واجتياز المسار & حقن الكود | فلتر ضعيف ومعالجة غير سليمة للدالة include() |
| 📜#4 | XSS | فلتر غير صالح لإدخال المستخدم |
| 📜#5 | SSRF & تفويض معطوب | إدخال مستخدم موثوق وعنوان IP للعميل من الترويسة |
| 📜#6 | SSTI | تنسيق إدخال مختلط |
| 📜#7 | SQLi | استخدام متغير غير صالح داخل العبارة |
| 📜#8 | CSRF | لا يوجد رمز CSRF مضمّن |
| 📜#9 | إعادة توجيه مفتوحة | معالج regex غير صالح |
| 📜#10 | DOM XSS | تصادم فلتر الواجهة الخلفية مع جافاسكربت جهة العميل |
| 📜#11 | CORS | ترويسة Access-Control-Allow غير مضبوطة بشكل صحيح |
| 📜#12 | CSRF/ClickJacking | طلب GET لـ CSRF مع عملية حذف غير آمنة / ClickJacking - X-Frame-Options معيّنة في وسم meta الخاص بـ HTML |
| 📜#13 | اجتياز المسار/رفع ملفات بدون قيود | ضعف الحماية ضد اجتياز المسار ورفع الملفات يؤدي إلى حقن كود |
| 📜#14 | DOS | معالجة غير صحيحة للمعامل في «حلقة for» |
| 📜#15 | آلية استعادة كلمة المرور الضعيفة لكلمة المرور المنسية | تجزئة ضعيفة لاستعادة كلمة المرور |
| 📜#16 | IDOR | عبارة if غير آمنة تؤدي إلى تحكم غير سليم في الوصول |
| 📜#17 | إلغاء تسلسل غير آمن | تنفيذ إدخال مستخدم موثوق داخل دالة pickle loads() |
| 📜#18 | اجتياز المسار | تحقق غير سليم من اسم الملف من قبل المستخدم |
| 📜#19 | إعادة توجيه مفتوحة | معالجة غير صالحة لإدخال يتحكم به المستخدم «location.hash» |
| 📜#20 | حقن SQL | استخدام غير صالح للدالة replace()، يتم استبدال الحرف مرة واحدة فقط |
| 📜#21 | PostMessage DOM XSS | لا يوجد تحقق من المصدر، مما يؤدي إلى PostMessage DOM XSS |
| 📜#22 | XSS/إعادة توجيه مفتوحة | حماية الفلتر لا تقوم بتصفية جميع الأحرف الخاصة التي يمكن استخدامها لاستغلال الثغرات |
| 📜#23 | تجاوز سعة المخزن المؤقت | أخذ إدخال STDIN من المستخدم عبر الدالة gets() دون التحقق من حجم المخزن المؤقت |
| 📜#24 | حقن SQL | استخدام غير صحيح لدالة PHP addslashes() |
| 📜#25 | XSS - تجاوز CSP | عدم التحقق من إدخال المستخدم مع معالجة غير آمنة لـ nonce |
| 📜#26 | اجتياز المسار | الفلتر المقدم من دالة PHP preg_replace() يقتصر على تصفية أول 10 أحرف فقط |
| 📜#27 | تسميم ذاكرة التخزين المؤقت على الويب | ترويسة HTTP Referer تنعكس في نص الاستجابة المخزنة مؤقتًا دون تصفيتها |
| 📜#28 | ثغرة منطق الأعمال | يمكن للمهاجم سحب مبالغ سالبة لزيادة الرصيد الإجمالي لحسابه |
| 📜#29 | IDOR | يمكن للمهاجم الوصول إلى بيانات حساسة تابعة لمستخدمين آخرين من خلال تنفيذ هجوم التصفح القسري |
| 📜#30 | إلغاء تسلسل غير آمن | استخدام دالة خطيرة (exec) يمكن للمستخدم التحكم بها، مما يؤدي إلى RCE |
| 📜#31 | LFI | لا يوجد هروب صحيح للأحرف أو تحقق من الفلتر. الدالة include() تنفذ جميع كود PHP في الملف المعطى بغض النظر عن امتداد الملف، مما يؤدي إلى حقن كود |
| 📜#32 | حقن التنسيق! | تنسيق سلسلة تحتوي على قيم مقدمة من العميل، مما يؤدي إلى حقن تنسيق |
| 📜#33 | حقن SQL (من الدرجة الثانية) | جميع استعلامات SQL تستخدم عبارات مُعدّة باستثناء العبارة الأخيرة. تستخرج هذه العبارة قيمة من قاعدة البيانات كانت خاضعة لتحكم المستخدم سابقًا وتضيفها إلى استعلام SQL، مما يؤدي إلى حقن SQL (من الدرجة الثانية) |
| 📜#34 | رفض الخدمة عبر التعبيرات النمطية (ReDoS) | نمط regex مهيأ بشكل سيئ يُستخدم لتصفية إدخال يتحكم به المستخدم |
| 📜#35 | XSS | إدخال مستخدم موثوق في معامل GET |
| 📜#36 | رفع الملفات بدون قيود | تحقق غير كافٍ من امتداد الملف المرفوع وتجاهل التحقق من محتوى الملف |
| 📜#37 | SSRF | معالجة غير آمنة لترويسة البروكسي X-Forwarded-Host و cURL تؤدي إلى SSRF كامل |
| 📜#38 | حقن الكود | يمكن للمستخدم كتابة محتوى مخصص إلى ملف محدد يتم تشغيله لاحقًا على النظام القابل للاختراق |
| 📜#39 | LFI | استغلال ثغرة LFI يجعل من الممكن تشغيل الأداة pearcmd مما يؤدي إلى تنفيذ كود عن بُعد |
| 📜#40 | رفع الملفات بدون قيود | يمكن استخدام الامتداد php3 لتنفيذ كود PHP بسبب الإعداد في بروكسي Apache. |
| 📜#41 | حقن الأوامر | الاستخدام غير الصالح لـ escapeshellcmd يؤدي إلى ثغرة حقن أوامر |
| 📜#42 | حقن الأوامر | لا يتم إجراء أي تحقق من إدخال المستخدم، مما يؤدي إلى ثغرة حقن أوامر |
| 📜#43 | SSTI | استخدام غير سليم لمحرك القوالب يؤدي إلى SSTI ينتج عنه RCE |