Page 234 - بسم الله الرحمن الرحيم
P. 234

‫غير ذلك سيتم إرجهاع ‪ FALSE‬وسيتم رفض الدختول‬

                                   ‫ملحظه ‪ :‬يجب أن يكون لديك ولو القليل من المعرفه بأوامر الـ ‪. SQL‬‬
            ‫>‪ <field from web form‬يحل محلها ما أدختله المستخد‪.‬م في صفحة التحقق من صلحيته‬
       ‫في تصجربتنا عندما قمنا بإدختال ' كإسم مستخد‪.‬م وبالمثل لكلمة المرور فأن أمر الـ ‪ SQL‬أصبح بالشكل‬

                                                                                                 ‫التالي ‪:‬‬

                                                                                                                                                 ‫‪:code‬‬

             ‫‪'=SELECT * from Users WHERE User_Name=' ' ' AND Password‬‬
                                                                                                             ‫''‬

                         ‫ونلحظ أننا قمنا بإغلق علمة التنصيص الولى وبقي علمة تصنصيص لم تصغلق بعد‬
                                                                      ‫وهو ما أدى لظهور رسالة الخطأ !!‬

                                                      ‫الن نقو‪.‬م بتجربة سٍا‪.‬م مستخد‪.‬م ‪blah' OR '1'='1 :‬‬
                                                                                    ‫ومثلها لكلمة المرور‪.‬‬

                                                                               ‫فيصبح شكل أمر الـ ‪SQL‬‬

                                                                                                                                                 ‫‪:code‬‬

           ‫‪SELECT * from Users WHERE User_Name='blah' OR '1'='1' AND‬‬
                                                                   ‫‪'Password='blah' OR '1'='1‬‬

                                                                            ‫لنحلل المر كل جهزء على حدا‬
                                                                         ‫‪SELECT * from Users‬‬
                                                            ‫تصعني أختتر جهميع السطور من الجدول ‪Users‬‬
      ‫‪'WHERE User_Name='blah' OR '1'='1' AND Password='blah' OR '1'='1‬‬
                      ‫في هذا الجزء نقو‪.‬م بتحديد السطر الذي سنقو‪.‬م بإختتياره وهو الذي تصتحقق فيه الشروط‬

                                                                                  ‫'‪'blah' OR '1'='1‬‬
                                                 ‫هنا بوجهود ‪ OR‬لم تصصبح قيمة نصيه ولكن أصبحت شرط‬
               ‫يصبح الشرط صحيح إذا كان طرف واحد على القل من الطراف المشتركه في الشرط صحيح‬

                                                                 ‫وفي حالتنا فإن الطرف الول هو '‪'blah‬‬
                       ‫وهو بدون الخوض في تصفاصيل لسنا في صددها الن يعبر عن قيمة صحيحه ‪TRUE‬‬

                                                                              ‫والطرف الختر هو '‪'1'='1‬‬
                                                      ‫يمكنك الجهابة عن إذا كانت ‪ 1‬مساويه لـ ‪ 1‬أ‪.‬م ل !!!!‬
                                            ‫إذا سيكون شكل الشرط بعد تصحليله هو ‪TRUE OR TRUE‬‬

                                                         ‫وبالتالي فإن النتيجه النهائيه للشرط هي ‪TRUE‬‬
                                                                      ‫ونفس التفاصيل تصحدث لكلمة المرور‬

‫ملحظه مهمه جهدنُا‪ :‬القيمه ‪ TRUE‬التي نحصلها من الشرط ليست مساويه للكلمه ‪ TRUE‬التي نكتبها على‬
                                                                                ‫لوحة المفاتصيح الخاصه بنا‬

          ‫لذلك ل تصحاول إستخدا‪.‬م أسم مستخد‪.‬م ‪ TRUE‬وكلمة مرور ‪ TRUE‬لتصما‪.‬م الـ ‪SQL injection‬‬

                ‫الشرط السابق سيقو‪.‬م بأختتيار أول سطر من الجدول ‪ Users‬ويرجهع محتوياتصه في مصفوفه‬
                                 ‫وبالتالي في بعض الحالت ستجد أنك قد أستطعت الدختول للصفحة المحميه‬
                                                                                 ‫ولكن في حالت أخترى ل‬
                                                                                     ‫لنكمل التفاصيل ‪.....‬‬

    ‫يجب التنبه لنه ربما يكون الشرط في أمر الـ ‪ SQL‬وهو ما يأتصي بعد ‪ WHERE‬يتحقق من عدة أشياء‬
‫لذلك نستخد‪.‬م ‪ (two dashes) --‬ليتم إهمال بقية السطر ‪ ,‬حيث يمكننا الستعاضه عن ما أدختلناه قبل قليل‬

                                                                                        ‫بالمدختلت التاليه‬
                                                                  ‫أسم مستخد‪.‬م ‪--'blah' OR '1'='1 :‬‬

                                                  ‫‪234‬‬
   229   230   231   232   233   234   235   236   237   238   239