
أداة لثغرات dlink بلغة بايثون وRust
لأنه لماذا لا
cve-2024-10914 هي ثغرة أمنية اكتُشفت مؤخرًا بتقييم حرج 9.8 وتؤثر على بعض أجهزة راوتر dlink. ولأن هذه الراوترات وصلت إلى نهاية دعمها (EOL)، ترفض dlink إصلاح هذه الثغرة بحجة "توقفوا عن كونكم فقراء واشتروا راوتر جديدًا فقط".
الأجهزة المعرضة للخطر تكشف عن نقطة نهاية HTTP، عادةً تحت /cgi-bin/account_mgr.cgi?cmd=cgi_user_add&name=<user_input>. بسبب عدم كفاية التعقيم، بدلاً من تقييد المدخلات أو التحقق منها بدقة (بالسماح فقط بالأحرف الأبجدية الرقمية)، يسمح التطبيق بحقن أي حرف، بما في ذلك الأحرف الخاصة المستخدمة في عمليات سطر الأوامر، مما يسمح بتنفيذ أكواد عشوائية.
من خلال إدخال محارف وصفية (metacharacters) مثل ; | & أو $(command) في حقل الاسم، يمكن لأي شخص تشغيل أوامر shell بسهولة. على سبيل المثال:
...name=admin'; echo 'get pwned bozo'; #
كل ما تفعله هذه السكربتات هو إرسال طلب مع تغيير باراميتر الاسم إلى أي كود تريد تشغيله.
هناك فيديو جيد جدًا من fireship يشرح ذلك بمزيد من التفاصيل: https://www.youtube.com/watch?v=52v6gKPA4TM
أولاً تحتاج إلى جهاز معرض للخطر، وتشمل بعض الموديلات:
أنصح بشدة بعدم استخدام هذا السكربت ضد أي شخص آخر دون موافقته، يرجى القيام بهذه الأشياء فقط إذا كنت تملك الراوتر أو لديك موافقة المالك
cargo run -- -u http://<device ip address>
cargo run
pip install -r requirements.txt
python main.py -u http://<device ip address>
python main.py
ثم اتبع التعليمات
لم أبتكر الكود الأصلي، بل verylazytech هو من فعله. أنا فقط نقلته إلى رست وبايثون لأنه بحق الجحيم لماذا لا. بالطبع كل الفضل يعود له ولأي شخص آخر شارك في اكتشاف هذا الاستغلال.