محمدمهدیـ

SQL injection چیه؟

7 پست در این موضوع قرار دارد

SQL injection چیه؟ :)

1

به اشتراک گذاری این پست


لینک به پست

یک نوع حمله با استفاده از ارسال یک رشته(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 بود :)

10

به اشتراک گذاری این پست


لینک به پست

یک نوع حمله با استفاده از ارسال یک رشته(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

1

به اشتراک گذاری این پست


لینک به پست

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

منبع :

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

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

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

6

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

0

به اشتراک گذاری این پست


لینک به پست

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

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

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

1

به اشتراک گذاری این پست


لینک به پست

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

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

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

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

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

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

نبود نگاه کن :

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

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

ویرایش شده در توسط bmppc2
0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری