مرحبا بكم في مدونة ابداع المغاري مصطفي طريقة جديدة لحقن sql | مدونة ابداع

طريقة جديدة لحقن sql

حقن SQL هو طريقةجيدة بما فيه الكفاية على أي متسلل للحصول علىالوصول إلى الخادم. ومع القليل من الجهد، فإنهلا يزال يحصل 🙂
المبرمج داخل
في عصرنا، والعمل مع قواعد بيانات معتمدةتقريبا جميع لغات البرمجة، وهذا يمكن أن يعزى إلى BASIC، C ++، جافا، بيرل، PHP، مجمع، وحتى جافا سكريبت! وتسمى هذه البرامج أي شيء آخر مثل قاعدة البيانات - نظام إدارة قواعد البيانات. في كثير من الأحيان، استخدمت قاعدة البيانات إلى حل المشاكل المالية،المحاسبة، وموظفي المنظمات، ولكن استخدامها، وأنها قد وجدت على شبكة الإنترنت.
وغالبا ما تستخدم قواعد البيانات لكتابة تطبيقات الويب. استخدامها هو الأنسب لتخزين معلومات التسجيل المستخدم، معرفات الجلسات، ابحث في المنظمة، فضلا عن التطبيقات الأخرى التي تتطلب المزيد من المعالجةكمية البيانات. الوصول إلى التكنولوجيات المستخدمة من جانب الخادم لقاعدة البيانات: PHP، PERL، ASP، الخ هذا هو المكان الذي يبدأ الاستمتاع. عندما يكون الملقمتثبيت جميع البقع، وجدار الحماية بحظر كافة منافذ باستثناء 80، أو عندما يتطلب التوثيق للوصول إلى بعض البيانات، لاختراق القراصنة يمكن استخدام حقن SQL. جوهر هذا الهجوم هو استخدام خطأ على تقنيات الويب و SQL تقاطع. حقيقة أن العديد من صفحات الويب لتجهيز بيانات المستخدم تشكل استعلام SQL خاص إلى قاعدة البيانات. استخدام الإهمال من هذه التقنية يمكن أن يؤدي إلى نتائج مثيرة للاهتمام الى حد بعيد ...حقن SQL
لشرح هجوم تخيل أنك ذهبت إلى موقع لتحميل واحد أدوات والرعب مهم جدا إشعار، يمكن أن تكون مستخدما مسجلا فقط والاختيار، وبطبيعة الحال أن للقيام بذلك، تكلف أموالا 🙂 آخر الانفس لا تريد أن تعطي، وبدون هذا البرنامج في أي حال من الأحوال! لقد حان الوقت للتفكير في كيفيةالوصول إلى قواعد بيانات SQL. على سبيل المثال، والتحقق من تسجيل الدخول وكلمة المرور على PHP يمكن أن تكون على النحو التالي:
$ النتيجة = mysql_db_query ($ ديسيبل، "SELECT * FROM الجدول $ حيث user = '$ تسجيل الدخول' وتمرير = '$ كلمة السر' ")؛$ NUM_ROWS = mysql_num_rows ($ نتيجة)؛mysql_close ($ الارتباط)؛إذا ($ NUM_ROWS! = 0){// تصديق موافق}آخر{// خطأ مصادقة}
وأضاف لي ملاحظتين، «تصديق موافق» - بدلا من ذلك ينبغيالذهاب إلى التعليمات البرمجية التي سيتم تنفيذها في حال أن اسم المستخدم وكلمة المرور الصحيحة. آخر «تصديق خطأ» - وهو المكان الذي سوف يمكن وصفها رمز، يتم تنفيذها في حال حدوث مخالفات. إذا كنت ملء استمارة، ثم طلب سيبدو «http://www.server.com؟login=user&password=31337»، حيث www.server.com اسمالخادم، الذي نحن نحاول الاتصال. لقد وجدنا ما كنت تبحث عنه، ولكن وفقا لهذه SQL العودة إلى العمل مرة أخرى. لذلك، إذا كان لديك الإذن بإدخال اسم المستخدم وكلمة المرور التي أنشأتها استعلام SQL سيكون:
SELECT * FROM المستخدمين حيث = تسجيل الدخول 'المستخدم وكلمة المرور = '31337'
وهذا يعني شيء مثل هذا: أعطني العودة كافة السجلات من المستخدمين بيانات قاعدة البيانات الذي الدخول "المستخدم"، وكلمة السر هي "31337". إذا كان هناك مثل هذا السجل، فهذا يعني يتم تسجيل المستخدم، ولكن إذا لم يكن كذلك، ثم لا ... ولكن تحت ظروف معينة، يمكن تصحيح كل شيء. هناك وجهة نظر من الحالة التي يكون فيها التطبيق لا تحقق محتويات البيانات أو الشيكات المرسلة ليس تماما، لعبارات SQL. في هذا المثال، يتم التحقق من الحقلين تسجيل الدخول وكلمة السر، ولكن إذا قمت بتحديد كلمة السر "31337" و email='user@server.com »(بدون علامات التنصيص)، ثم الطلب سيكون مختلفا قليلا:
SELECT * FROM المستخدمين حيث = تسجيل الدخول 'المستخدم وكلمة المرور =' 31337 'وemail='user@server.com "
وفي حالة وجود حقل البريد الإلكتروني، كما سيتم فحص هذا الشرط. إذا كان لنا أن نذكر أساسيات الجبر البولي، فإنه يتبادر إلى الذهن أنه بالإضافة إلى عملية "و" موجود "أو" ولأن استخدامها يدعمه SQL، يمكن أن يكون أعلىالطريقة الموصوفة لإضافة شرط أن يعود دائما صحيحا. لتنفيذ هذا، تحتاج إلى تحديد اسم المستخدم ب «المستخدم أو 1 = 1"، في هذه الحالة، فإن الطلب يأخذ شكل:
SELECT * FROM المستخدمين حيث = تسجيل الدخول 'المستخدم' OR 1 = 1-- "وكلمة المرور = '31337'
وبادئ ذي بدء يجب أن نعرف أن "-" يصادف نهاية الطلب، وبعد كل شيء "-"لن تتم معالجتها! لذا، إذا قدمنا ​​الطلب:
SELECT * FROM المستخدمين حيث = تسجيل الدخول 'المستخدم' OR 1 = 1
كما ترون، واضاف لدينا حالة من "1 = 1" يعني اختبار المعيار هو "إذا كان اسم المستخدم" المستخدم "أو 1 = 1"، إلا أن 1 هو دائما 1 (ربما باستثناء الحساب الوحيد داني Shepovalova :)). للتحقق من شكوكنافدق في شريط عنوان «http://www.server.com؟login=user أو 1 = 1- وكلمة المرور = 31337". وهذا يؤدي إلى ما هو غير ذي صلة ما نوع حددنا تسجيل الدخول وأكثر كلمة المرور الخاصة بك! ونحن في مصفوفة ... أوه، والنظام يمكن تحميل بسهولة ما نحتاج إليه.
ولكن الأمر كله من الناحية النظرية. في الواقع، نحن لا نعرف كيف يتم إنشاء الطلب، التي تنتقل البيانات والتي التسلسل. ولذلك فمن الضروري تحديد «المستخدم أو 1 = 1" لجميع المجالات. يجب عليك أيضا التحقق من شكل أرسلت لحقول مخفية. في HTML، تم وصفها على أنها «<INPUT TYPE = القيمة الخفية = 'قيمة'>". إذا كانت موجودة، حفظ الصفحة وتغيير القيم من هذه الحقول. القيم الواردة فيها في كثير من الأحيان ينسى للتحقق من وجود بيانات SQL. ولكن العمل على انجاحه ينبغي أن يكون في شكل (علامة «نموذج») لوضع «العمل» تحدد المسار الكامل للنص الذي يعالج الطلب.
ولكن ليس دائما، والمعروف أيضا أن يتم تشكيل الاستعلام،المثال الأخير يمكن أن تشكل وفي الطرق التالية:
SELECT * FROM المستخدمين حيث (= تسجيل الدخول 'المستخدم وكلمة المرور =' 31337 ')SELECT * FROM المستخدمين حيث تسجيل الدخول = "المستخدم" وكلمة المرور = "31337"SELECT * FROM المستخدمين حيث تسجيل الدخول = المستخدم وكلمة المرور = 31337
إلخ
في هذه الحالة، يمكنك محاولة الخيارات التالية:
'OR 1 = 1»أو 1 = 1أو 1 = 1'أو' '=' ل»أو« على »=» ل') أو (ع' = 'لأو '1' = '1'
كل شيء يتوقف على الغرض من السيناريو، ومبرمج. وبما أن كل شخص يمكن أن تفعل أشياء بطريقتها الخاصة، فمن الممكن تماما أن مبرمج يختار ليس الخيار الأسهل. لذلك، يجب عليك فورايستسلم، إذا كنت تتلقى الرفض. يجبحاول قدر الإمكان عدد من الخيارات ...كشف كلمة المرور
تجاوز تفويض لطيفة، ولكن في كثير من الأحيان في حفرة كنت تستخدم يغلق، وكل ما كان خسر متاح لك.ينبغي أن يتوقع ذلك، إذا كان مبرمج ليس أحمق، وقال انهفي نهاية المطاف سوف تغطي جميع الثغرات. من هذه الحالات، يمكنك بسهولة التخلص من اتخاذ العناية بها. الحل الصحيح هو تخمين كلمة المرور عن طريقتحليل نتائج المصادقة. بالنسبة للمبتدئين في محاولة لتخمين كلمة المرور عن طريق دخول المكان ما يلي:
'OR كلمة المرور>' ل
إذا كان لنا أن الإجابة على هذا يتم تمرير المصادقة، ثم كلمة المرورلا يبدأ بحرف "أ"، وعلى بعض مما يلي في القائمة. نحن نتحرك على والبديلمكان "أ"، ما يلي «ب»، «ج»، «د»، «ه» ... الخ ومع ذلك فإننا لا إجابة، وكلمة السر غير صحيحة. اسمحوا هذه العملية توقفت على الرمز «س»، في هذه الحالة هي نوعين مختلفين من هذا الوضع، وجدت كلمة المرور أو كان كلمة تقرأ على هذا الرمز. لاختبار النسخة الأولى من وضع الكتابة في كلمة المرور:
'OR كلمة المرور =' س
وإذا تم قبول كلمة السر، وتتيح لك، ثم هل تفكر في كلمة السر! حسنا لا، ثم يجب عليك تحديد الحرف الثاني،فقط من البداية. للتحقق المكون من حرفينينبغي أن تكون هي نفسها. في النهاية، سوف تتلقى كلمة المرور واسم المستخدم يبحثون عن أكثر من 🙂إذا وجدت كلمة المرور وتسجيل الدخول كنت غير راض، يمكنك العثور على الآخرين. للقيام بذلك، بدء الاختبار مع آخر حرف من كلمة وجدت. على سبيل المثال، إذا كانت كلمة السر «سكس» للتحقق من وجود كلمة مرور ضروري"XXY":
'OR كلمة المرور =' الثلاثون
لا تفوت أكثر من خيار واحد!MS SQL خادم
MS SQL خادم تجد عموما إذا خسر الترشيح اللازمة. يمكن تشغيلها باستخدام نقاط الضعف حقن SQLالأمر على الخادم البعيد عن طريق master..xp_cmdshell إكسيك. ولكن من أجل استخدام التصميميجب عليك إكمال «SELECT» العملية. في عبارات SQL مفصولة بفواصل منقوطة. لذلك، للاتصال IP معين خلال التلنت، كنت في حاجة الى كلمة المرور / تسجيل الدخول نوع المكان:
إكسيك master..xp_cmdshell "192.168.0.1 تلنت" -
في MS SQL خادم لديها عدد قليل من السمات أكثر إثارة للاهتمام للعثور على أسماء المستخدمين وكلمات المرور المخزنة في قاعدة البيانات. لهذا الخطأ وإعادة توجيه الإخراج إلى الخادم عشوائي، وخلال بهمالتحليل يمكن التعرف على اسم حقول الجدول وأنواعها. ثم يمكنك طلب
"UNION SELECT TOP 1 تسجيل الدخول من users-
(اسم تسجيل الدخول من الحقل الذي يحتوي على تسجيل الدخول والمستخدمين - اسم الجدولpoluuchenye في تحليل الأخطاء).
قد يكون الجواب على النحو التالي:
موفر Microsoft OLE DB ل خطأ برامج تشغيل ODBC '80040e07'[مايكروسوفت] [ODBC SQL Server تشغيل] [SQL خادم] خطأ في بناء الجملة تحويل قيمة NVARCHAR 'مشرف' إلى عمود من نوع البيانات عدد صحيح./default.asp، خط 27
نحن نعرف الآن أن هناك المستخدم مع اسم «مشرف». الآن يمكننا الحصول على كلمة السر الخاصة به:
"UNION SELECT TOP 1 كلمة المرور من المستخدمين حيث تسجيل الدخول = 'admin'-
النتيجة:
موفر Microsoft OLE DB ل خطأ برامج تشغيل ODBC '80040e07'الخطأ هو [Microsoft] [ODBC SQL Server تشغيل] [SQL خادم] بناء الجملة تحويل قيمة NVARCHAR 'XXX' إلى عمود من نوع البيانات عدد صحيح./tedault.asp، خط 27
ونحن نعرف الآن أن هناك المستخدمين «مشرف» مع «سكس» كلمة السر. هذا يمكن أن يكون بأماناستخدام وتسجيل الدخول إلى نظام 😉
ولكن للعمل مع SQL هناك العديد من الوظائف الأخرى،عند العمل مع قاعدة بيانات، يمكنك أيضا حذف البيانات أو تعديل أو إدراج الخاصة، وحتى التعامل مع الملفات والعمل مع التسجيل.بشكل عام و SQL خادم - سيارات الأجرة 🙂حماية
ولكن كل هذا يمكن تجنبه بشكل طبيعي. هذا يمكن أن يكوناستخدام مرشحات،المقدمة من قبل الشركة المصنعة. يمكنك العثور على حلول لها، مثل ليحل محل كل واحدةعلامات الاقتباس المزدوجة (إذا كان الاستعلام SQL التي نستخدمها واحد)، أو العكس بالعكس. يمكنك السماح فقط للاستخدام الحروف والدبابات @، إذا كنت تريد أن تدخلعنوان البريد الإلكتروني. وفي لؤلؤة لديها مذهلةوظيفة 🙂 الاقتباس () في وحدة DBI :: DBD، والتي تجعل بنجاح طلبك آمنة فيما يتعلق SQL. مما يجعل الكثير، فقط في حاجة إليهااستخدام. وإلا، فلماذا كل هذا ...






Download - here








شاركه على جوجل بلس

عن Unknown

    تعليقات بلوجر
    تعليقات فيسبوك

0 التعليقات:

إرسال تعليق