شما هم اکنون در حال مشاهده مطلب علت به وجود آمدن باگ در اپلیکیشن وب (SQL injection) از اولترا سیکوریتی می باشید

این صفحه تاکنون 807 بار بازدید داشته است
علت به وجود آمدن باگ در اپلیکیشن وب (SQL injection)
آموزش ، تست نفوذ وب سایت ۲۹ بهمن ۹۷ 807 بازدید
چکیده مطلب:

سلام خدمت کاربران عزیز تیم امنیتی اولترا   در این بخش به طور مختصر میپردازیم به باگ معروف Sql injection که باعث استخراج اطلاعات از دیتابیس و یا حذف و اضافه کردن اطلاعات دیتابیس میشود.   نکته قابل توجه : از طریق SQLi در برخی موارد میشود درون فایل های سیستم خوندن یا نوشتن انجام […]

سلام خدمت کاربران عزیز تیم امنیتی اولترا

 

در این بخش به طور مختصر میپردازیم به باگ معروف Sql injection که باعث استخراج اطلاعات از دیتابیس و یا حذف و اضافه کردن اطلاعات دیتابیس میشود.

 

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

 

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

 

لایه نمایش: این قستمی هست که کاربر با اپلکیشن در ارتباط هست و شما در حال حاضر این بخش رو میبینید.

لایه اپلکیشن: این قستمی هست که داده های کاربر از لایه نمایش دریافت میکنه و مورد پردازش و تحلیل قرار میده که زبان های سمت سرور مانند php ,asp در این بخش هستند.

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

 

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

 

یاد آوری :خب همون طور که میدونید آسیب پذیری موقعی پیش میاد که ورودی های کاربر کنترل نشه و اکثر آسیب پذیری ها بر همین اساس شناخته شدن که نقص در نوشتن کد هست و آسیب پذیری در کده برنامه به وجود میاد.

 

خب حالا بریم دستورتی یا به اصطلاح query  که دیتابیس بعد از دریافت داده از کاربر روی دیتابیس اجرا میکنه ببینیم:

 

 

خب این یه query دیتابیس هست که در این دستور عدد ۲ کاربر وارد کرده است, خب فک کنید سایتی هست که از طریق متد GET ایدی مربوط به کتابی رو میگیره و بعد از برسی ایدی در دیتابیس نام کتاب مربوط به اون ایدی روی صفحه نشون میده خب حالا اگر ما URL خودمون رو صورت زیر وارد کنیم:

 

در اینجا توجه کنید جلوی عدد یه تک کوتیشن (‘) قرار گرفته که بعد از رسیدن مقدار ایدی به query دیتابیس دستور به شکل زیر خواهد شد:

 

 

و در اینجا میبینید یه تک کوتیشن اضافی هست که همین باعث بروز خطا در query میشود و الان متوجه شدید چرا از تک کوتیشن برای شناسایی sqli استفاده میشه 🙂 و همون طور که میدونید این فقط برای تشخیص باگ بود نه بکارگیری باگ.

 

خب بریم بررسی کنیم انواع روش ها برای شناسایی و بکارگیری (exploit) تزریق اسکیوال:

 

Error-base : روشی هست که برای شناسایی باگ از طریق اررور هایی که توی صفحه سایت یا همون لایه نمایش دیده میشود شروع به بکارگیری باگ میکنیم در مواردی union-base هم میگن که در اینجا union دستوری از query هست که برای بکارگیری از طریق error-base ازش استفاده میشه.

 

Blind-sqli : در مواقعی که ما برای شناسایی باگ اقدام میکنیم میبینیم هیچ ارروری توی صفحه سایت به ما نشون نمیده و به اسکیوال نابینا معروف هست و ما باید از روش های دیگه برای شناسایی استفاده کنیم در مواردی گفته میشه time-base و boolean-base که اینا روش هایی برای شناسایی و بکارگیری از طریق  blind-sqli استفاده میشه.

 

نکته : دوتا از معروف ترین دیتابیس های مورد استفاده MySql که برای وب سرور آپاچی در سرور های لینوکس استفاده میشه و mssql دیتابیسی هست که برای وب سرور IIS در سرور های مایکروسافت استفاده میشه.

 

خب در آخر بریم ابزار هایی برای بکارگیری Sql injection معرفی کنیم:

 

Sqlmap : ابزار جامعی برای شناسایی و بکارگیری بر روی انواع دیتابیس ها و انواع روش های بکارگیری استفاده میشود

Bbqsql : ابزاری برای شناسایی و بکارگیری از طریق متد Blind استفاده میشود.

Sqlsus : ابزاری که فقط بر روی دیتابیس mysql استفاده میشود.

Sqlninja : ابزاری که فقط برای دیتابیس mssql استفاده میشود.

 

در کلام آخر : تو این پست ما به معرفی این باگ و علت به وجود اومدن باگ رو توضیح دادیم و خب برای شناسایی و بکارگیری انواع پیلود های مختلف وجود داره که حتی با وجود فایروال های وب (WAF) روش هایی برای عبور داده از این دیوار آتشین باید استفاده کرد و امنیت در برابر این حفره تا جای ممکن باید ورودی هایی که به دیتابیس میرسه رو فیلتر کنیم و در مواردی از توابعی برای فیلتر کردن ورودی ها استفاده میشود.

 

امیدوارم مطلب رو به خوبی توضیح داده باشم  موفق باشین 🙂

 

 

  • اولترا سکیوریتی :
مطالب پیشنهادی اولترا سیکوریتی
محبوب ترین دوره های آنلاین مشاهده تمامی دوره ها
دوره آموزشی باج افزار نویسی با پایتون

  برای خرید این محصول برروی لینک زیر کلیک کنید   دوره آموزشی باج افزار...

دوره آموزشی ساخت بات نت متصل به تلگرام با پایتون

  برای خرید این محصول برروی لینک زیر کلیک کنید   دوره آموزشی ساخت بات...

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

  برای خرید این محصول برروی لینک زیر کلیک کنید   دوره آموزشی ویروس نویسی...

کلیه حقوق این وب سایت نزد اولترا سیکوریتی محفوظ می باشد و هرگونه کپی برداری از قالب و محتوا پیگرد قانونی دارد

طراحی و توسعه توسط اولترا سیکوریتی