التواصل المباشر مع الادارة والاعضاء القدامى من خلال قناة التلغرام



العودة   :: vBspiders Professional Network :: > [ ::. الـقرصـنـة والأختراق ~ The Hidden World Of Hackers .:: ] > قـسـم إخـتـراق الـمـواقـع والـسـيرفـرات

 
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 08-06-2010, 03:19 PM   رقم المشاركة : 1 (permalink)
معلومات العضو
 
الصورة الرمزية dolla
 

 

 
إحصائية العضو





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

 

 

إحصائية الترشيح

عدد النقاط : 10
dolla is on a distinguished road

افتراضي افضل شرح لاكتشاف ثغرات sql injection وترقيعها مميز


بسم الله الرحمن الرحيم :- اليوم انا هشرح درس اكتشاف ثغرات الحقن بالاسكربت لاكن بطريقة

جديدة ومختلفة :- وده لان انا شايف بعض الناس بيطبقون النوع ده من الثغرات بدون فهم

مبدا عمل الثغرة .. وانا هشرح كل شىء من الصفر لعيون المبتداين :-

اول حاجة :- عشان تفهم ثغرات الحقن لازم يكون عندك خلفية بسيطة عن php+mysql


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

=========================
ملحوظة:-المشفر بالنجوم الاربعة هى كلمة "name"
=========================

=================
المتغيرات فى php
================

قبل مبدا بالمتغيرات هشرح عمل ال echo فى الphp تقوم echo بتطبع النصوص:-

نشوف الكود :-

كود PHP:
<?php

echo "Dolal is here";


?>

لو وضعنا الكود ده فى ملف مثلا اسمه dolla.php ودخلت بالمتصفح راح تلاقى الجملة


dolla is here مطبوعة بالصفحة :- طيب مثال اخر ..




كود:
<?php

echo "Dolal love football";

echo "dolla love php";

echo "dolla love sql";


?>

طيب الكود ده لو وضعناه بملف dolla.php ودخلنا عليه بالمتصفح هنلاقى تلت جملات مطبوعة


وهى :-


dolla love football
dolla love php
dolla love sql


طيب لو انا مثلا عاوز اغير اسم dolla الى اسم مثلا Nesha واسم dolla ده موجود

بكثرة فى كود الphp هل معقولة انى هعد اغير كل اسم dolla واحوله الى nesha

لا طبعا :- هنا ياتى دور المتغيرات فى ال php :- يرمز للمتغيرات فى ال Php

بعلامة $ وفايدة المتغير انك بدل متعمل طباعة لاسم معين انك تعمل الطبااعة للمتغير :-

واما تحب تعدل الاسم الى هينطبع تعدله من المتغير بدل متضطر انك تعدل الاسم يدويا


طيب نشوف الكود :-


كود PHP:
<?php

$name
=nesha;

echo 
"$name love football";

echo 
"$name love php";

echo 
"$name love sql";


?>

طيب عملنا المتغير الى هو $name وحطينا قيمته ب nesha وعلمنا طباعة للمتغير

لو دخلنا على الملف من المتصفح راح يظهر الجمل الاتية


nesha love football
nesha love php
nesha love sql


طيب تمام عرفنا فايدة المتغير .. فى نوع تانى من المتغيرات وده الاهم وهو المتغيرات ب GET


==========================

المتيغرات بGET فى PHP

========================

النوع التانى من المتغيرات هو المتغيرات ب GET والمتغير هنا بيتغير حسب ال URL الى بالمتصفح

بمعنى انك موش بتعدل عالمتغير من الكود .. انما يتم تغيير المتغير من خلال ال URL طيب نشوف

الكود :-

كود PHP:
<?php

$dolla
=$_GET['name'];


echo 
$dolla;


?>

طيب الجديد هنا انى عملت المتغير dolla ب GET بمعنى ان المتغير هتتغير قيمته


حسب القيمة الى هتدخل فى ال Name من خلال الurl بمعنى نفرض انى وضعت الكود


بملف اسمه index.php


وعاوز اطبع مثلا جملة dolla+is+here

هكتب :- index.php?name=dolla+is+here

بعد اما اما تضغط انتر راح يتم تسجيل الجملة dolla+is+here بالمتغير dolla


وراح تتم طباعة المتغير dolla الى هو قيمته dolla+is+here

طيب نشوف الصورة





طيب تمام تم طباعة الجملة dolla+is+here


نفهم من كده ان المتغير dolla بتتغير قيمته حسب الى بندخل فى ال url فى ال Name


طيب مثلا لو عاوزين نخلى المتغير dolla قيمته nesha+is+here

هنكتب
index.php?name=nesha+is+here






طيب جميل تم تغيير قيمة المتغير الى nesha+is+here وتم طبعها بالمتصفح

=============================================

============================

مدخل الى عالم ال mysql

============================

لغة ال mysql هى لغة برمجة خاصة بقواعد البينات اول حاجة لازم نعرفها

انه اى قاعدة تتكون من جداول والجداول تتكون من اعمدة مثلا

عندنا قاعدة اسمها dolla والقاعدة دى فيها جدولين

الجدول الاول :admin:- ويتكون من ثلال اعمدة

id
name
pass

الجدول التانى :- profile ويتكون من اربع عواميد :-

id
name
age
job

======







========


طيب :- هناك بالقواعد الصفوف والصفوف دى بتبقى القيم بتاعت العواميد

يعنى مثلا فى جدول admin

العمود id يحتوى على القيمة رقم عضوية الادمن :1

العمود name يحتوى على اسم الادمن :dolla

العمود Pass بيه باس الادمن :123456

قيم العواميد بتعرض فى شكل صفوف






==================================

جمل ال select statment فى mysql

===============================

هناك العديد من الاوامر فى Mysql مثل slelect,update,insert

بس انا هشرح ال select وفايدة جمل ال select هى


اختيار معلومات معينة من جدول معين بقاعدة معينة لاظهارها


مثلا لو انا عملت

كود:
select name from admin
راح يظهر لى اسم الادمن dolla

طيب لو
كود:
select pass from admin
راح يظهر ال pass الى هو 123456

طيب لو عملت


كود:
selct pass,name,id from admin
راح يظهر لى

123456
dolla
1
===========================================

كود برمجى مكون من php+mysql
===========================================

طيب دلوقتى معانا كود بيجمع بين المتغيرات ب GET فى PHP + امر SELECT فى Mysql

طيب نشوف الكود





طيب نشرح الكود :- اول حاجة عندنا المتغير id ده متغير ب get يعنى بتتغير قيمته

حسب القيمة الى هنحطها فى ال url بالمتصفح


طيب تانى حاجة عندنا $query وده بيتحوى على امر sql من نوع select

والامر ده بيقوم بختيار ال name وال age وال job من جدول profile اعتمادا

على ال id دى وظيفة where انها بتجبلك معلومات عن عواميد معينة بدلالة عواميد اخرى


طيب لو نلاحظ ان امر ال select ده المكتوب فى الكود معتمد على المتغير id الى هنكتبه بالurl

فملا لو الكود بملف profile.php

واحنا دخلنا عالملف بالمتصفح وكتبنا :-

index.php?id=1


ايه الى هيحصل هيتم تخزين القيمة 1 بالمتغير get وبالتالى هيتم تخزين القيمة بالمتغير الموجود

بال query الى 1






طيب بالون الفوشيا تم ادخال القيمة الى ادخلنها من ال url فى المتغير $id وبالتلى

وبالتالى تم تغييرها بال query


طيب بعد كتابة index.php?id=1


ده هيعمل query الى هو:-

كود:
select name,age,job where id=1

وده هيكون نتيجته بالصفحة :-

abdo
20
doctor

طيب لو كبتنا index.php?id=2

هتجلنا معلومات الصف رقم 2 الى هى :-


ahmed
22
engineer

تمام الى هنا كل شىء واضح :- نجى بقى لفكرة ال SQL Injection

=====================================
مدخل الى عالم ال sql injection
====================================

اول حاجة معنى sql injection هو حقن ال sql وده معناه اننا:-

بنحقن او بنضيف اوامر sql خبيثة الى امر ال sql الموجود اساسا بالاسكربت


يعنى بدل مكنا بنكتب index.php?id=2

هنضيف اوامر خبيثة تقوم باحضار pass ال admin من خلال ال union select

=========================
Union select
=========================

تستخدم ال union فى جملة ال select لاختيار معلومات عن عواميد من جداول مختلفة

وشروطها :-

عدد العواميد ال query الاول يكون مساوى لعدد العواميد بال query ألتانى

مثلا
كود:
select name,pass from admin union select name,age from profile
نلاحظ هنا ان فى ال query الاول تم اختيار عمودين من جدول admin

وبالquery التانى تم اختيار عمودين من جدول profile

لازم عدد العواميد يكون متساوى فمثلا لو اخترت عمود واحد من جدول ال admin يبقى لازم اختار عمود واحد ايضا من

جدول profile

كود:
select name from admin union select age from profile

================================================== ===
استخراج اسم+رقم العضوية +باص الادمن
================================================== ===
طيب نرجع لموضوعنا تانى دلوقتى يجماعة احنا عارفين اننا بنتحكم فى قيمة المتغير id من خلال ال url

index.php?id=2

طيب هنا بقى انا هحقن ال query الى بالاسكربت من خلال ال Union select

احنا عارفين ان ال query الاول بيطلب تلت عواميد ال age,name,job طيب دلوقتى انا حقن

query خبيث هيجيب باص الادمن بالصفحة :D

نشوف هكتب ايه :-

كود:
index.php?id=2 union select id,name,pass from admin

بعد متدوس انتر الى هيحصل للكود البرمجى




طيب طبعا بعد اما تدوس انتر بالمتصفح معلومات الادمن هتظهر بالصفحة

1
dolla
123456

=============================================

التعليقات فى Mysql
=============================================

فى بعض الاحيان يكون الكود البرمجى :-





group by age هترتب نتيجة العمر والوظيفة والاسم حسب العمر


طيب دلوقتى فى مشكلة قدامنا ان فى جملة group by age بعد المتغير $id يعنى الجملة دى هتنضاف بعد الquery بتاعنا


كود:
index.php?id=2 union select id,name,pass from admin
هيصبح الكود :-






طيب دلوقتى جملة ال group by age تم اضافتها لل query وطبعا ده هيخلى ال query بتاعنا failed يفشل :D

واحنا عاوزين نتلاشى الجملة group by age يعنى نخليها ملهاش تاثير


من هنا ياتى دور التعليقات :- comments


التعليقات وظيفتها هى :- اهمال جملة معينة فى ال query اى جعلها مجرد تعليق :- ومن ثم لا يكون لها اى تاثير وممكن نستخدم فى التعليق فى Mysql

كود:
/* او --
طيب نشوف

هنعمل ايه :-

كود:
index.php?id=2 union select id,name,pass from admin/*
ضيفنا علامة التعليق وبكده جملة group by age هتقع بعد علامة ال /* وموش هيكون لها اى تاثير :D







================================================== =========

طيب فى مشكلة كمان ساعات بتقابلنا فى ال sql injection اننا موش بنقدر نشوف نتيجة ال query بتاعنا فى من خلال union select

وده ياما بسبب ان مفيش مكان يتسع لنتيجة ال query بتاعنا الى ضيفناه بالصفحة :- الفكرة انى هخلى ال query الاول يفشل يعنى هخليه قيمته false

وبالطريقة دى نتيجة الكويرى الاول موش هتظهر :- فممكن نشوف نتيجة الكويرى بتاعنا الى احنا ضفناه فى امكان ظهور نتائج الكويرى الاول :d

طيب ازاى نخلى الكويرى الاول failed او نخليه يفشل هنضيف قيمة موش موجودة بالقاعدة مثلا زى

-2

واحنا عارفين ان مفيش رقم id بالسالب يعنى كده بخلى الكويرى قيمته false او بالبلدى بخلى الكويرى خطا

نشوف

كود:
index.php?id=-2 union select id,name,pass from admin/*
والكود البرمجى هيكون






طبعا الكويرى اصبح الاول

كود:
SELECT name,age,job FROM profile WHERE id=-2
وزى محنا عارفين مفيش رقم id بالسالب يعنى من الاخر الquery خطا مية المية وبكده مفيش نتيجة هترجع :-

وبالتالى نتيجة الquery بتاعنا الى هو بيجيب باص الادمن واسمه ورقم عضويته هتظهر مكان نتيجة ال query الاول


================================

ممكن كمان نضيف and 1=0 عشان نخلى قيمة الكويرى خطا
كود:
index.php?id=2 and 1=0 union select id,name,pass from admin/*



لحماية المتغيرات الرقمية من اضافة النصوص نستخدم الدالة intval() فهى تقوم بالتحقق من ان المتغير

رقمى وترفض اى نص يتم اضافته من المستخدم...





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

للمبتداين


=======================================


طيب جميل .. بكده ينتهى الدرس وترقبوا الجزء التانى منه بازن الله تعالى ... اخوكم DOoOoOoLLA

يريت يجماعة الى عندو يؤال ميترددش وانا هجاوبه اهم شىء تعم الفائدة للاعضاء.

================================================== =======



htqg avp gh;jaht eyvhj sql injection ,jvrduih lld.

   

رد مع اقتباس
 

مواقع النشر (المفضلة)


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

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة

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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
Thumbs up into_outfile in SQL Injection شرح طريقة رفع شل عن طريق ثغرات SQL Injection Black-FoG SQL قواعد البيانات 73 03-14-2014 09:08 PM
شرح بالصور لثغرات Blind Injection AuthBypas وترقيعها Master vbspiders SQL قواعد البيانات 4 08-11-2010 04:46 PM
برنامج صغير اصدار بيتا لاكتشاف ثغرات الSQL عاشق الفيروسات SQL قواعد البيانات 16 02-26-2010 11:12 PM
افتراضي سكريبت Injector لاكتشاف ثغرات SQL KaLa$nikoV SQL قواعد البيانات 4 01-11-2010 06:03 PM


الساعة الآن 08:45 AM


[ vBspiders.Com Network ]

SEO by vBSEO 3.6.0