مشکلی که در مورد برنامه های وب وجود دارد این است که آنها آشکارا در معرض میلیاردها کاربر اینترنت قرار دارند که بسیاری از آنها می خواهند اقدامات امنیتی آن را بشکنند – به هر دلیلی.


در اوایل اینترنت ، یکی از متداول ترین روش های حمله ، نیروی بی رحمانه اولیه و ساده بود. رباتها معمولاً این حملات را انجام می دادند – افرادی که وقت زیادی ندارند – که سعی در استفاده از نام های کاربری و کلمه های عبوری صفر داشتند تا اینکه آنها را پیدا نکردند که به برنامه هدف دسترسی پیدا کند..

به لطف خط مشی های رمز عبور ، تلاش برای ورود به سیستم محدود و captchas ، حملات بی رحمانه دیگر هیچ تهدیدی نیست. اما مجرمان سایبری دوست دارند که سوء استفاده های جدید را کشف کنند و از آنها برای انجام انواع جدیدی از حملات استفاده کنند. چندی پیش ، آنها دریافتند که فیلدهای متنی در برنامه ها یا صفحات وب می توانند با وارد کردن متن یا با تزریق متن غیر منتظره در آنها مورد سوء استفاده قرار بگیرند که باعث می شود برنامه برای انجام کاری که قرار نیست انجام دهد ، انجام دهد. به این ترتیب ، حملات به اصطلاح تزریق وارد صحنه شدند.

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

تزریق کد

تزریق کد یکی از متداول ترین انواع حملات تزریق است. اگر مهاجمان زبان برنامه نویسی ، چارچوب ، بانک اطلاعاتی یا سیستم عامل مورد استفاده توسط یک برنامه وب را بدانند ، می توانند از طریق فیلدهای ورودی متن کد را وارد کنند تا وب سرور را وادار به انجام کارهای مورد نظر خود کند..

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

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

فقط با آزمایش ورودی متن متنی یک برنامه وب با انواع مختلف محتوا ، می توان آسیب پذیری های تزریق کد را پیدا کرد. در صورت یافتن ، آسیب پذیری ها به سختی قابل استفاده هستند. اما هنگامی که یک مهاجم موفق به سوء استفاده از یکی از این آسیب پذیری ها شود ، این ضربه می تواند از بین بردن محرمانه بودن ، یکپارچگی ، در دسترس بودن یا عملکرد برنامه باشد.

تزریق SQL

با روشی مشابه تزریق کد ، این حمله یک اسکریپت SQL – زبانی که توسط اکثر پایگاه داده ها برای انجام عملیات پرس و جو استفاده می شود – را در یک قسمت ورودی متن وارد می کند. اسکریپت به برنامه ارسال می شود که آن را مستقیماً در پایگاه داده خود اجرا می کند. در نتیجه ، مهاجم می تواند از صفحه ورود به سیستم عبور کند یا کارهای خطرناک تری انجام دهد ، مانند خواندن داده های حساس به طور مستقیم از پایگاه داده ، تغییر داده یا ویران کردن داده های دیتابیس یا اجرای عملیات سرپرست در پایگاه داده..

برنامه های PHP و ASP به دلیل واسط های عملکردی قدیمی تر در معرض حملات تزریق SQL قرار دارند. برنامه های J2EE و ASP.Net معمولاً بیشتر در برابر این حملات محافظت می شوند. هنگامی که آسیب پذیری تزریق SQL یافت شود – و به راحتی می توان یافت – بزرگی حملات احتمالی فقط با مهارت و تخیل مهاجم محدود خواهد شد. بنابراین ، بدون شک تأثیر یک تزریق SQL زیاد است.

تزریق فرمان

این حملات نیز عمدتاً به دلیل عدم اعتبار ورودی کافی امکان پذیر است. آنها با حملات تزریق کد متفاوت هستند زیرا مهاجم به جای تکه های کد برنامه نویسی یا اسکریپت ها ، دستورات سیستم را وارد می کند. بنابراین ، هکر نیازی به دانستن زبان برنامه نویسی که در آن برنامه مستقر است یا زبانی که از پایگاه داده استفاده می شود نیست. اما آنها باید سیستم عامل مورد استفاده سرور میزبان را بشناسند.

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

با محدود کردن سطح دسترسی به سیستم برنامه های وب در حال اجرا بر روی یک سرور ، می توان از طریق حملات سیستم جلوگیری کرد.

برنامه نویسی متقاطع

هر زمان که یک برنامه از یک کاربر در داخل خروجی تولید شده خود وارد کند ، بدون تأیید اعتبار یا رمزگذاری آن ، به یک مهاجم فرصت می دهد تا کد مخرب را برای کاربر نهایی دیگر ارسال کند. حملات اسکریپت کراس سایت (XSS) از این فرصت ها برای تزریق اسکریپت های مخرب به وب سایت های قابل اعتماد استفاده می کند ، که در نهایت برای سایر کاربران برنامه ارسال می شود ، که قربانیان حمله کننده می شوند.

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

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

که در ذخیره شده حملات XSS ، اسکریپت مخرب بطور دائمی روی سرور هدف ، در یک انجمن پیام ، در یک پایگاه داده ، در یک بازدید کننده و غیره اقامت می کند. قربانی آن را وقتی درخواست می کند که مرورگر اطلاعات ذخیره شده را درخواست کند. که در منعکس شده حملات XSS ، اسکریپت مخرب در پاسخی که شامل ورودی ارسال شده به سرور باشد ، منعکس می شود. به عنوان مثال می تواند یک پیام خطا یا نتیجه جستجو باشد.

تزریق XPath

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

XPath یک زبان استاندارد است که با آن ، مانند SQL ، می توانید خصوصیاتی را که می خواهید پیدا کنید مشخص کنید. برای انجام پرس و جو در داده های XML ، برنامه های وب از ورودی کاربر استفاده می کنند تا الگویی را که داده ها باید مطابقت داشته باشند ، تنظیم کنند. با ارسال ورودی نادرست ، این الگوی می تواند به عملیاتی تبدیل شود که مهاجم بخواهد روی داده ها اعمال کند.

برخلاف آنچه در SQL اتفاق می افتد ، در XPath نسخه های مختلفی وجود ندارد. این بدان معنی است که تزریق XPath می تواند در هر برنامه وب که از داده های XML استفاده می کند ، صرف نظر از اجرای آن ، انجام شود. این همچنین بدان معنی است که حمله می تواند خودکار باشد. بنابراین ، بر خلاف تزریق SQL ، این پتانسیل را دارد که در برابر تعداد دلخواه از اهداف اخراج شوید.

تزریق فرمان نامه

از این روش حمله می توان برای سوءاستفاده از سرورهای ایمیل و برنامه هایی که عبارت IMAP یا SMTP را با ورودی کاربر معتبر نادرست ایجاد می کنند ، استفاده کرد. گاهی اوقات ، سرورهای IMAP و SMTP از محافظت جدی در برابر حملات برخوردار نیستند ، زیرا این مورد در اکثر سرورهای وب اتفاق می افتد ، بنابراین به همین دلیل می توانند بهره برداری بیشتری داشته باشند. با ورود از طریق سرور نامه ، مهاجمان می توانند از محدودیت هایی مانند captchas ، تعداد محدودی درخواست و غیره جلوگیری کنند.

برای سوءاستفاده از یک سرور SMTP ، مهاجمان برای ارسال پیام با دستورات تزریق شده نیاز به یک حساب ایمیل معتبر دارند. اگر سرور آسیب پذیر باشد ، به درخواست های مهاجمین پاسخ خواهد داد ، به عنوان مثال به آنها امکان می دهد محدودیت های سرور را نادیده بگیرند و از خدمات خود برای ارسال اسپم استفاده کنند..

تزریق IMAP می تواند عمدتاً در برنامه های ایمیل انجام شود و از قابلیت خواندن پیام استفاده شود. در این موارد ، حمله می تواند با وارد کردن در نوار آدرس یک مرورگر وب ، URL با دستورات تزریق شده انجام شود.

تزریق CRLF

درج کاراکترهای برگشتی کالسکه و علائم خوراک خط – ترکیبی که به عنوان CRLF شناخته می شود – در زمینه های ورودی فرم وب نشان دهنده یک روش حمله به نام تزریق CRLF است. این شخصیت های نامرئی نشانگر پایان یک خط یا پایان یک دستور در بسیاری از پروتکل های سنتی اینترنتی مانند HTTP ، MIME یا NNTP است.

به عنوان مثال ، وارد کردن CRLF به درخواست HTTP ، و به دنبال آن برخی از کدهای HTML خاص ، می تواند صفحات وب سفارشی را برای بازدید کنندگان یک وب سایت ارسال کند..

این حمله می تواند بر روی برنامه های وب آسیب پذیر انجام شود که فیلتر صحیح را روی ورودی کاربر اعمال نمی کنند. این آسیب پذیری در را برای سایر انواع حملات تزریق مانند XSS و تزریق کد باز می کند ، همچنین می تواند در وب سایت ربوده شود..

تزریق هدر میزبان

در سرورهایی که میزبان بسیاری از وب سایت ها یا برنامه های وب هستند ، هدر میزبان برای تعیین اینکه کدام یک از وب سایت های مقیم یا برنامه های وب – هر یک از آنها به عنوان یک میزبان مجازی شناخته می شود – لازم است یک درخواست ورودی را پردازش کند. مقدار هدر به سرور می گوید که کدام یک از میزبان های مجازی را برای ارسال درخواست ارسال کند. هنگامی که سرور یک هدر میزبان نامعتبر را دریافت می کند ، معمولاً آن را به اولین میزبان مجازی در لیست منتقل می کند. این یک آسیب پذیری است که مهاجمان می توانند از آن برای ارسال هدرهای میزبان دلخواه به اولین میزبان مجازی در یک سرور استفاده کنند.

دستکاری هدر میزبان معمولاً مربوط به برنامه های PHP است ، اگرچه می توان با سایر فن آوری های توسعه وب نیز این کار را انجام داد. حملات سرصفحه میزبان به عنوان عامل ایجاد کننده حملات دیگر ، مانند مسمومیت با حافظه نهان ، فعالیت می کند. پیامدهای آن می تواند شامل اجرای عملیات حساس توسط مهاجمان باشد ، برای مثال ، تنظیم مجدد رمز عبور.

تزریق LDAP

LDAP پروتکل است که برای تسهیل جستجوی منابع (دستگاه ها ، فایل ها ، سایر کاربران) در یک شبکه طراحی شده است. این برای اینترانت بسیار مفید است ، و هنگامی که به عنوان بخشی از یک سیستم ورود به سیستم واحد استفاده می شود ، می توان از آن برای ذخیره نام کاربری و کلمه عبور استفاده کرد. نمایش داده شد LDAP شامل استفاده از شخصیت های کنترل ویژه ای است که بر کنترل آن تأثیر می گذارد. اگر آنها بتوانند شخصیتهای کنترل را در آن وارد کنند ، مهاجمان می توانند رفتار موردنظر را برای پرس و جو LDAP تغییر دهند.

باز هم ، مشکل اصلی که امکان حملات تزریق LDAP را فراهم می کند ، ورودی کاربر معتبر نیست. اگر متنی که کاربر برای برنامه ارسال می کند به عنوان بخشی از پرس و جو LDAP استفاده شود بدون آنکه از آن استفاده کند ، پرس و جو می تواند در آخر بازیابی لیستی از همه کاربران و نشان دادن آن به یک مهاجم ، فقط با استفاده از ستاره (*) در سمت راست باشد. داخل یک رشته ورودی قرار دهید.

جلوگیری از حملات تزریق

همانطور که در این مقاله دیدیم ، تمام حملات تزریق به سمت سرورها و برنامه هایی با دسترسی آزاد به هر کاربر اینترنتی هدایت می شوند. مسئولیت جلوگیری از این حملات بین توسعه دهندگان برنامه ها و سرورهای سرور توزیع شده است.

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

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me