pedia-learning

ورود

گذرواژه‌تان را فراموش کرده‌اید؟

ثبت نام

ثبت نام
انجمن عمومی گسترش فناوری آگو

اگر اولین بار از انجمن بازدید می کنید برای دسترسی کامل به انجمن عضو شوید بعد عضویت قادر به ارسال مطلب و شرکت در بحث خواهید داشت

ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش Sql Injection ( توضيح كوتاه در مورد SQL INJECTION)
02-24-2013, 02:56 PM
ارسال: #3
RE: آموزش Sql Injection ( بدست آوردن ستون ها و استخراج ورژن ، یوزر و نام بانک)
در این قسمت به بدست آوردن اطلاعات کاربردی از سایت هدفمون مانند تعداد ستون ها (Column's) و استخراج ستون هایی که میتونن به ما کمک کنند برای استخراج اطلاعات بیشتر و در ادامه به بدست آوردن ورژن سایت و یوز سایت و نام دیتابیس سایت میپردازیم .

مراحل آموزش در این قسمت را مرور میکنیم :

1. بدست آوردن تعداد ستون های دیتابیس .
2. استخراج ستون هایی که به ما در حمله میتوانند کمک کنند .
3. بدست آوردن ورژن سایت .
4. بدست آوردن یوزر سایت .
5. بدست آوردن نام بانک اطلاعاتی .

میریم سر خود آموزش :

بعد از پيدا كردن سايتی که مشکل امنیتی مورد نظرمونو داره دار اولين كاري كه ميكنيم بايد ببينيم ستون ها یا به عبارت دیگر Column های این سايت چند عدد است .

براي اين كار در MySQL بايد از دستور Order By X استفاده كنيم كه اين دستور تعداد ستون ها را به ما نشان میدهد .

اين ميشه دومین قدم در حمله ، یعنی شناسایی هدف .

براي بدست اوردن ستون ها بايد به شكل زير كدمونو تزریق كنيم :

کد php:
http://www.p5n.net/mtl/news-full.php?id=14+order+by+0-- 
نكته : ( + ) رو ميتونيد بزنيم و حتی ميتونيم جای + اسپيس بزنيم يعني خالي ! اين دستور یه جورای کار بایپس رو انجام میده، بعضی سایت ها به فضای خالی در آدرس ایراد میگیرند بهتره که از مثبت میون دستوراتون استفاده کنید .

خوب در این کد باید شما ستون هارو با تغییر ادد بعد از by تست کنید ،

براي راحتي كارتون ميتونيد مثلا 15 بزنيد اگه ارور داد یا صفحه کامل لود نشد، يعني ستون ها كم تر از 15 تا هستند و اگه ارور نداد يعني يا بيشتر از 15 هست يا خود 15 تاست، معمولا ستون های سایت ها بین 1 تا 30 و 35 هستند بیشتر نمیشند اگه شدند ادامه بدید نا امید نشید شاید تا 100 تا یا بیشترم برسه !

من روی این تارگتمون تست میکنم از 15 شروع میکنم و میبینم که ارور میدهد و صفحه درست لود نمیشه ، این به این معناست که ستون ها کمتر از 15 هستند من عدد های گرد شده رو میزنم که سریعتر به جواب برسم ، حالا پایین تر میام و عدد 10 رو تست میکنم و مجددا ارور میبینم باز پایین تر میام و 5 رو تست میکنم، سایت به صورت کامل لود میشه این به این معناست که یا 5 ستون داریم یا بیشتر از 5 تا است من 6 رو تست مکنم و مچددا سایت به طور کامل لود میشه و در آخر 7 را تست میکنم و سایت ناقص لود میشود این به این معناست که سایت مورد نظر ما 6 ستون دارد .

به همین سادگی ميتونيد سوتون هاي سايت رو بدست بياريد ! ==> 6

حالا ميريم سر خود حمله ! اولين كار اينه كه ستون ها رو فراخواني كنيم با دستور Union Select براي استفاده از اين دستور بايد به شكل زیر دستور رو تزریق کنیم :

کد:
کد php:
http://www.p5n.net/mtl/news-full.php?id=-[/B]14[B]+union+select+1,2,3,4,5,6-- 
نكته : ( - ) در قبل از 14 يعني ما با اين دستور ميتونيم اطلاعات رو از سایت بكشيم اون 14 هم معنی کلیدی ندارد که و اگر تغییرش هم بدید مشکلی ایجاد نمیشه ولی معمولا عدد های بالا بگذارید مثل 999999 یا 9999 و ...

خوب بعد از تزریق کد بالا به سایت ستون های که میتونیم ازشون استفاده کنیم رو میبینیم .

حالا ميرسيم به قسمت حساس (از نظر سختی و راحتی حمله) حمله، یعنی پيدا كردن ورژن سايت مورد نظر كه 2 حالت داره :

1: ورژن بالاي 5 باشه : اگر ورژن بالاي پنج باشه ميتونيم از Infotmation Schema اطلاعاتمونو بكشيم بيرون ! (راحت)
2: ورژن پاين پنج باشه ! : اگر ورژن پايين پنج باشه بايد Table ها که در ادامه باهاشون آشنا میشید و Column ها رو حدس بزنيم! (كه اگه اسم جدول ها و ستون های مورد نظرمون اسم های عمومی نباشند كار يكم مشكل ميشه !)

براي پيدا كردن ورژن ديتابيس سايت ميتونيم از دستو [ Version() l يا Version@@ ] استفاده كنيم !
براي اين كار كلمه version@@ رو در يكي از ستون هاي كه باز هست و ما ميتونيم ازش استفاده كنيم قرار ميديم تا اطلاعات رو به ما نشون بده ! به اين صورت :

کد php:
http://www.p5n.net/mtl/news-full.php?id=-14+union+select+1,2,3,@@version,5,6--
http://www.p5n.net/mtl/news-full.php?id=-14+union+select+1,2,3,version(),5,6-- 

خوشبختانه ورژن سایت ما 5.0.92-community هست و کار ما خیلی راحت میشه و به سادگی میتونیم اطلاعات رو از سایت هدف بیرون بکشیم . بعد از آموزش Inject این ورژن اگه استقبال خوب بود آموزش Inject ورژن های پایین تر از 5 رو هم قرار میدم

فقط چند نکته را بگم که در فیلم آموزشی بیشتر توضیح داده شده برای بدست آوردن یوزر سایت از دستور ()User و برای بدست آوردن نام دیتابیس سایت از دستور ()Database استفاده کنید

نکته : حتما فیلم های آموزش رو دانلود کنید بعضی نکات شاید در فیلم آموزش بهتر توضیح داده شود ...

سعي كردم خيلي ساده و تمام توضيح بدم اگه سوالي تا اينجا داشتيد بگيد جواب ميدم ...

موفق باشید .

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

در این درس یاد میگیرید که :

1. تعداد ستون های سایت هدف را شناسای کنید .
2. ستون هایی که به ما در حمله میتوانند کمک کنند را استخراج کنیم .
3. ورژن سایت را بدست بیاوریم .
4. یوزر سایت را بدست بیاوریم .
5. نام بانک اطلاعاتی را بدست بیاوریم .
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پیام‌های داخل این موضوع
RE: آموزش Sql Injection ( بدست آوردن ستون ها و استخراج ورژن ، یوزر و نام بانک) - agotd - 02-24-2013 02:56 PM

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان


Persian Translation by MyBBIran.com - Ver: 4.1
Powered by MyBB, © 2002-2024 MyBB Group.
Theme designed by Marvel (Sidebar created by Yaldaram - Yaldaram.com)
Theme Translation by Mt Edition