رفتن به مطلب

SQL injection چیه؟


پست های پیشنهاد شده

یک نوع حمله با استفاده از ارسال یک رشته(String) حاوی کد مخرب به SQL Server Instance می باشد. کد مخرب حاوی یک دستور معتبر SQL است که به طور طبیعی توسط SQL سرور اجرا می شود.

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

SELECT * FROM CustomerOrder WHERE CustomerName=’@pUserInput’

که @pUserInput پارامتر دریافت شده از کاربر است حال اگر کاربر قصد برنامه ریزی یک حمله را داشته باشد می تواند رشته ای با فرمت زیر را به عنوان نام طرف حساب به برنامه ارائه کند:

Mohammad’; DELETE FROM CustomerOrder—

دستور SQL که به سرور SQL ارسال می شود به صورت زیر خواهد بود:

SELECT * FROM CustomerOrder WHERE CustomerName=’ Mohammad’; DELETE FROM CustomerOrder—

ارسال این دستور به SQL سرور حاصلی جز حذف کلیه طرف حسابهای ثبت شده در پایگاه داده نخواهد داشت. توجه داشته باشید که ( ;) به مفهوم پایان یک دستور و شروع یک دستور دیگر بوده و (--) به مفهوم آنست که مابقی عبارت بعد از – برای SQL به منزله کامنت تلقی خواهد شد.

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

1- سایز و نوع دیتا دریافتی کنترل و محدودیتهای وابسته به نوع اطلاعات مورد نظر اعمال شود.

2- محتوای دیتا کنترل و از پذیرش اطلاعات باینری، کاراکترهای کامنت و ... خودداری شود.

3- هیچگاه به طور مستقیم از دیتای وارد شده توسط کاربر دستور SQL ساخته نشود.

4- کاراکتر های خاص نظیر ( ;),(‘),(--),(xp_),(/* */) در اطلاعات دریافت شده از کاربر پذیرش نشده و یا به نحو مناسب جایگزین شود.

5- سایز و نوع پارامترهای وروی SP ها کنترل شود.

نکته 1: اطلاعات دریافتی الزام به طور مستقیم از کاربر دریافت نمی شود و می تواند شامل اطلاعاتی باشد که قبلا در جداول پایگاه داده ذخیره شده است.

منبع :

http://www.payvast.c...cton-چیست؟.aspx

جاتون خالی الان چندتایی تارگت توی آشیانه زدم همین sql inject بود :)

لینک به ارسال

یک نوع حمله با استفاده از ارسال یک رشته(String) حاوی کد مخرب به SQL Server Instance می باشد. کد مخرب حاوی یک دستور معتبر SQL است که به طور طبیعی توسط SQL سرور اجرا می شود.

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

SELECT * FROM CustomerOrder WHERE CustomerName=’@pUserInput’

که @pUserInput پارامتر دریافت شده از کاربر است حال اگر کاربر قصد برنامه ریزی یک حمله را داشته باشد می تواند رشته ای با فرمت زیر را به عنوان نام طرف حساب به برنامه ارائه کند:

Mohammad’; DELETE FROM CustomerOrder—

دستور SQL که به سرور SQL ارسال می شود به صورت زیر خواهد بود:

SELECT * FROM CustomerOrder WHERE CustomerName=’ Mohammad’; DELETE FROM CustomerOrder—

ارسال این دستور به SQL سرور حاصلی جز حذف کلیه طرف حسابهای ثبت شده در پایگاه داده نخواهد داشت. توجه داشته باشید که ( ;) به مفهوم پایان یک دستور و شروع یک دستور دیگر بوده و (--) به مفهوم آنست که مابقی عبارت بعد از – برای SQL به منزله کامنت تلقی خواهد شد.

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

1- سایز و نوع دیتا دریافتی کنترل و محدودیتهای وابسته به نوع اطلاعات مورد نظر اعمال شود.

2- محتوای دیتا کنترل و از پذیرش اطلاعات باینری، کاراکترهای کامنت و ... خودداری شود.

3- هیچگاه به طور مستقیم از دیتای وارد شده توسط کاربر دستور SQL ساخته نشود.

4- کاراکتر های خاص نظیر ( ;),(‘),(--),(xp_),(/* */) در اطلاعات دریافت شده از کاربر پذیرش نشده و یا به نحو مناسب جایگزین شود.

5- سایز و نوع پارامترهای وروی SP ها کنترل شود.

نکته 1: اطلاعات دریافتی الزام به طور مستقیم از کاربر دریافت نمی شود و می تواند شامل اطلاعاتی باشد که قبلا در جداول پایگاه داده ذخیره شده است.

جاتون خالی الان چندتایی تارگت توی آشیانه زدم همین sql inject بود :)

منبع :

http://www.payvast.c...cton-چیست؟.aspx

لینک به ارسال

تشکر از توضیحاتتون

منبع :

http://www.payvast.c...cton-چیست؟.aspx

الآن لازم بود شما این پست رو بدید ؟

مهم کمک کردن به کاربر هست حالا از هر طریقی میخواد باشه

لینک به ارسال
  • 1 ماه بعد...

الآن لازم بود شما این پست رو بدید ؟

مهم کمک کردن به کاربر هست حالا از هر طریقی میخواد باشه

خوب اون سایته دوستم بود این همه زحمت کشیدن مطلب گذاشتن باید کپی رایت هم باشه

این همه تو انجمن میگید کپی رایت اما خودتان رعایت نمیکنید؟

لینک به ارسال

اگر دقت میکردید منبع هم معرفی کرده بودم :)

اما اگر شما در اون لحظه ندیدید و یا ... دلایل زیادی میتونه داشته باشد

باز اگر بنده کوتاهی کردن و ندیدم پوزش میطلبم

لینک به ارسال

الآن لازم بود شما این پست رو بدید ؟

مهم کمک کردن به کاربر هست حالا از هر طریقی میخواد باشه

شما دیگه چرا آقا کسرا؟ کپی رایت را نباید رعایت کرد؟

اگر دقت میکردید منبع هم معرفی کرده بودم :)

اما اگر شما در اون لحظه ندیدید و یا ... دلایل زیادی میتونه داشته باشد

باز اگر بنده کوتاهی کردن و ندیدم پوزش میطلبم

نبود نگاه کن :

post-694-0-17493900-1399200591_thumb.jpgpost-694-0-17493900-1399200591_thumb.jpg

البته مهم نیست منبع را نگفتید اما بهتره از شماهائی که مدیر هستید فرهنگ سازی کپی رایت جا بیفته تا همه کپی رایت را رعایت بکنند

ویرایش شده توسط bmppc2
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...