دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 5 , از مجموع 5

موضوع: آموزش گام به گام Mssql Injection

  1. #1
    دوست آشنا
    رشته تحصیلی
    کامپیوتر
    نوشته ها
    458
    ارسال تشکر
    1,362
    دریافت تشکر: 2,791
    قدرت امتیاز دهی
    12128
    Array
    Sabo3eur's: جدید145

    پیش فرض آموزش گام به گام Mssql Injection

    َسلام خدمت دوستان عزیز
    امروز نحوه اموش هک کردن با باگ Sql Injection رو براتون میذارم امیدوارم مفید باشه


    آموزش اینجکت کردن دیتابیس های Mssql به صورت کامل گام به گام.
    خوب بریم سراغ آموزش !!!
    در ابتدا تعریفی داشته باشم از باگ Sql Injection :
    Sql Injection یک نوع حفره ی امنیتی هستش که با بی دقتی برنامه نویس در استفاده از Query های Sql به وجود میاد و به نفوذ گر امکان نفوذ میده.
    این باگ یکی از پرطرفدار ترین باگ های دنیاست به چند دلیل
    1 سادگی استفاده از آن
    2 فراوانی این باگ.
    این باگ چگونه به وجود میاد : ما با استفاده از کارکتر های غیر مجاز باعث به وجود آمدن خطا میشیم و از همین خطا ها اطلاعات دیتابیس رو بیرون میکشیم.
    ما تو این قسمت نحوه ی اینجکت Mssql رو آموزش میدیم.
    میریم سراغ آموزش :
    باگ های SQl Injection در جا خایی مختلفی ممکنه وجود داشته باشه مثل یک آدرس در Url که با بانک اطلاعاتی در ارتباطه یا فیلد های لاگین پیج که User و Password رو با اطلاعاتی که در داخل بانک اطلاعاتی چک میکنه یا حتی یک قیلد Search یا فیلد های ثبت نام که اطلاعات رو در دیتابیس ذخیره میکنن و ........
    ما دونه دونه جلو میریم.
    میخوام که این مقاله یکی از کامل ترین مقاله های اینجکت Mssql بشه !!!!
    نکته ای که باید اینجا متذکر بشم اینه که دیتابیس های Mssql ورژن های مختلفی دارن که یک قانون تو همه ی ورژن ها صدق میکنه اونم اینه که اگر ورژن دیتابیس بالای 4 بود ما میتونیم تیبل ها و کالمن ها رو براحتی بدست بیاریم ولی اگر زیر 4 بود این کار یکم سخت میشه و باید حدس بزنیم !!!
    ما از ورژن شروع میکنیم.
    همان طور که در بالا هم بهش اشاره شد در مکان های مختلفی امکان داره این باگ رخ بده ما تو این قسمت از آموزش فرض رو بر این میگیریم که url باگ داره .
    برای پیدا کردن باگ Sql Injection ما چند راه داریم
    1 استفاده از کارکتر های غیر مجاز مثل (')
    2 استفاده از دستورات منطقی مثل (and 1=1 Or and 1=0)
    استفاده از کارکتر های غیر مجاز
    ما یه سایتیداریم میخواهیم ببینیم باگ Sql Injection دارد یا خیر
    آدرس یکی از صفحاتش به این صورته


  2. 11 کاربر از پست مفید Sabo3eur سپاس کرده اند .


  3. #2
    دوست آشنا
    رشته تحصیلی
    کامپیوتر
    نوشته ها
    458
    ارسال تشکر
    1,362
    دریافت تشکر: 2,791
    قدرت امتیاز دهی
    12128
    Array
    Sabo3eur's: جدید145

    پیش فرض پاسخ : آموزش گام به گام Mssql Injection

    خوب ما وقتی این آدرس رو مبینیم اون صفحه یم کوری برای Database میفرسته که Id برابر بشه با 5 در دیتابیس از قبل تعریف شده که اگر Id برابر با 5 شد فلان صفحه رو نمایش بده.
    ما تست میکنیم که باگ داره یا نه
    در آدرس مرورگر وارد میکنیم

    پس از اجرا کردن این آدرس ما یک خطا مثل زیر مشاهده میکنیم :

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '
    این خطا نشان دهنده این است که این سایت باگ Sql Injection داره.
    حال باید بریم سراغ اینجکت کردن این سایت با هدفی مشخص از اینجکت
    مثالا بدست آوردم Username و Password صفحه ی مدریت یا اجرا کردن کامند در صورت پیکر بندی نادرست Sql Server یا وارد کردن اطلاعات جدید در جداول ها و تغیر ضاهر سایت !!!!
    هر 3 روش رو به صورت کامل براتون توضیح میدم.
    هدف اول بدست آوردن Username و Password مدیریت سایت :
    ما با استفاده از دستورات Sql اطلاعاتی بدست بیاریم تعدای از این دستورات رو توضیح میدم.
    دستور Order by ما با استفاده از این دستور تعداد کالمن هایی که در دستور اول خوانده می شوند را در میاریم :
    طریقه ی استفاده از دستور Order by
    Order by تعداد حدث کالومن ها
    به این صورت عمل میکنیم
    نکته : برای استفاده از دستور union select باید تعداد دیقیق کالمن هایی که در دستور اول خواست میشود را بدانیم.

    عدد 5 یک عدد حدسی است که ما میگیم آیا این دستور اول 5 تا کالمن را می خواند؟
    پس از وارد کردن این آدرس 2 تا اتفاق ممکنه بیفته
    1 صفحه به صورت کامل لود میشود.
    2 خطایی شبیه زیر دریافت میکنید :

    Microsoft OLE DB Provider for ODBC Driverserror '80040e14'
    [Microsoft][ODBC SQL Server Driver][SQL Server]The ORDER BY position number 5 is out of range of the number of items in the select list.
    ویرایش توسط Sabo3eur : 28th July 2013 در ساعت 07:18 PM

  4. 6 کاربر از پست مفید Sabo3eur سپاس کرده اند .


  5. #3
    دوست آشنا
    رشته تحصیلی
    کامپیوتر
    نوشته ها
    458
    ارسال تشکر
    1,362
    دریافت تشکر: 2,791
    قدرت امتیاز دهی
    12128
    Array
    Sabo3eur's: جدید145

    پیش فرض پاسخ : آموزش گام به گام Mssql Injection

    اگر صفحه لود شد و بالا اومد یعنی با تعداد کالمن ها بیشتره یا به همین تعدادی هست که وارد کردید.
    اگر صفحه خطا داد یعنی تعداد تیبل ها کمتره و باید با عددی کمتر امتحان کنید.
    پس از اجرای آدرس بالا صفحه لود شد و بالا اومد این یعنی تعداد کالمن های دستور اول بالا تر یا برابر با 5 هستش یک بالاتر رو امتحان میکنم:

    باز هم صفحه لود شد و این یعنی تعداد کالمن های دستور اول برار یا بالاتر ای 7 یک عدد بیشتر رو امتحان میکنم:


    خطا ی زیر رو داد :

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft]
    [ODBC SQL Server Driver][SQL Server]The ORDER BY position number 9 is out of range of the number of items in the select list.
    خوب این خطا یعنی تعداد کالمن های دستور اول کمتر از 9 هستش.
    عدد 8 رو انتخاب میکنیم :
    باز هم خطا داد:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft]
    [ODBC SQL Server Driver][SQL Server]The ORDER BY position number 8 is out of range of the number of items in the select list.
    این یعنی تعداد کالمن های دستور اول ما 7 تاست چون 7 را وارد میکنیم سایت بالا میاد ولی 8 خطا میده !!!!
    میریم سراغ اینجکت
    ما برای پیدا کردن اسم تیبل ها و کالومن ها
    ما برای این کار چند تا راه داریم
    1 استفاده از دستور Union+select و استفاده از جدول information_schema در ورژن های 5 به بالا.
    2 استفاده از دستور Select یا Select Top و استفاده از جدول information_schema در ورژن های 5 به بالا.
    3 اسفاده از دستورات having و Group by
    از Union+select شروع میکنیم:
    نحوه ی استفاده از Union+select و استفاده از تیبل information_schema به این صورته :

    تعداد تیبل های ما 7 تا بود پس به این صورت عمل میکنیم :


  6. 6 کاربر از پست مفید Sabo3eur سپاس کرده اند .


  7. #4
    دوست آشنا
    رشته تحصیلی
    کامپیوتر
    نوشته ها
    458
    ارسال تشکر
    1,362
    دریافت تشکر: 2,791
    قدرت امتیاز دهی
    12128
    Array
    Sabo3eur's: جدید145

    پیش فرض پاسخ : آموزش گام به گام Mssql Injection

    پس از اجرای این دستور ما در صفحه به صورت محسوسی !!!! چند عدد مشاهده میکنیم مثل 2 یا 5 یا هر عددی زیره 7 که این عدد ها نشان دهنده ی جدول هایی هست که در حال حاظر با دیتابیس در ارتباط هست.
    ما اگر این عدد ها رو در صفحه مشاهده کردیم که هیچ اگر نکردید سروری صفحه را مشاهده کنید.
    اگر مشاهده نکردید با یکی از دستورات از قبل تعریف شده مثل User() تک تک تست کنید روی هر کدام که اطلاعات رو نشان داد اون با بانک الاعاتی در ارتباطه.
    یک توضیح کوچولو درباره جدول information_schema بدم این جدول دز ورژن 5 به دیتابیس اضافه شد و اطلاعات دیتابیس ها و جدول ها و کالومن ها در اون ذخیره میشه.
    ما فرض رو بر این میگیریم که عدد 2 را مشاهده کردیم به این صورت عمل میکنیم:

    ما در آدرس بالا با استفاده از اطلاعاتی که در جدول Table_name ذخیره شده اسم اولین تیبل از این دیتابیس رو میبینیم.
    توضیح ساده درباره ی دستورات بالا برای کسانی که با نحوه ی کار با Sql آشنایی ندارن.
    در دستور بالا گفتیم که اطلاعات فیلد table_name رو از جدول infromation_schema.tables به ما نشون بده .
    infromation_schema.tables جدولیه که اطلاعات جدول های دیگر داخلش ذخیره شده.

    ادامه داستان !!!!
    خوب با استفاده از دستور بالا ما اسم اولین جدول رو بدست میاریم.
    یه نکته بگم برای دیدن اطلاعات داخل جداول ها یا فیلد ها ابتدا باید نام اون ها رو داشته باشیم.
    خوب خطا به ما یک اسم نشون میده مثل Forum ما بعد از بدست آوردن نام اولین جدول میریم دنبال نام جداول دیگر
    برای این کار ما از دستور where استفاده میکنیم و به Sql دستور میدیم که نام جدول مورد نظر ما این نیست به این صورت:


    پس از وارد کردن دستور بالا نام دومین جدول رو میبینیم مثالا News.
    میریم سراغ جدول بعدی به این صورت:

  8. 6 کاربر از پست مفید Sabo3eur سپاس کرده اند .


  9. #5
    دوست آشنا
    رشته تحصیلی
    کامپیوتر
    نوشته ها
    458
    ارسال تشکر
    1,362
    دریافت تشکر: 2,791
    قدرت امتیاز دهی
    12128
    Array
    Sabo3eur's: جدید145

    پیش فرض پاسخ : آموزش گام به گام Mssql Injection

    پس از وارد کردن آدرس بالا در مرورگر ما اسم تیبل سوم رو میبینیم مثالا pageid
    به این صورت عمل میکینم :
    http://njavan.com/index.php?id=5+uni...m+infromation_ schema.tables+where+not+in('forum','News',pageid)
    پس از ورد کردن ادرس بالا ما اسم جدول بعدی رو مشاهده میکنیم Users خوب ما به هدفی که داشتیم یعنی پیدا کردن جدول ادمین و به دست آوردن username و Password مدید رسیدیم.
    نکته : اکثر مواقع اطلاعات مدیر در جداول زیر میباشد:
    Users
    Members
    Member
    Useradmin
    user-admin
    userpass
    admin
    administrator
    و .......
    خوب حالا که ما جدول مدیر رو بدست آوردیم میریم سراغ به دست آوردن کالومن ها ی این جدول :
    برای بدست آوردن کالومن ها به این صورت عمل میکنیم :
    در دستور بالا ما اطلاعات کالومن ها رو از جدول information_schema خواستیم و بعد اون رو محدود کردیم به یک جدول خاص.
    با اجرای آدرس بالا ما اسم اولین کالومن رو میبینیم مثالا Id
    برای بدست آوردن کالومن های دیگر به این صورت عمل میکنیم :

    [QUOTE
    http://njavan.com/index.php?id=5+uni...not+in('ID'))[/QUOTE]
    در دستور بالا ما با استفاده از دستور and گفتیم که اگر کالومن این جدول Id نباشه که ما کالومن دیگه رو مشاهده میکنیم.
    اسم جدولی که خطا به ما نشون میده Username هستش میریم سراغ بقیه:


  10. 5 کاربر از پست مفید Sabo3eur سپاس کرده اند .


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. معرفی: target برای تمرین Injection
    توسط Sabo3eur در انجمن آموزش هک
    پاسخ ها: 0
    آخرين نوشته: 30th June 2011, 12:32 PM
  2. آموزش SQL Injection
    توسط Sabo3eur در انجمن مقاله ها و آموزش های مربوط به برنامه نویسی
    پاسخ ها: 0
    آخرين نوشته: 20th June 2011, 08:52 PM
  3. آموزشی: sql injection vidio
    توسط آبجی در انجمن آموزش هک
    پاسخ ها: 0
    آخرين نوشته: 5th May 2010, 02:25 PM
  4. مقاله: معرفی SQL Injection Attacks و نحوه پیشگیری از آن
    توسط Admin در انجمن مهندسی کامپیوتر - نرم افزار
    پاسخ ها: 0
    آخرين نوشته: 26th January 2009, 05:29 AM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •