حمله به برنامه های وبی (۳)
در بخشهای پیشین از این مجموعه مقالات تعدادی از روشهای حمله به برنامههای وبی معرفی شدند. در ادامه به روشهایی که با استفاده از آنها میتوان به پایگاه داده سیستم نفوذ کرد اشاره میشود.
تزریق SQL
به زبان ساده این نوع حمله وارد کردن کد SQL به یک برنامه است، در شرایطی که توسعه دهنده برنامه قصد آن را نداشته و یا حتی پیشبینی آن را نیز نکرده باشد. ریشه این نوع حملات به ساختار طراحی ضعیف برنامه برمیگردد و تنها در مورد برنامههایی قابل انجام است که از روشهای ساخت رشته های SQL بهره میگیرند.
به مثال زیر توجه کنید:
Dim StrSQL as String = "SELECT CustomerID, CompanyName, ContactName, " & -
"ContactTitle FROM Customers WHERE CustomerID = '" & txtCustID.Text & "'"
در عبارت فوق با استفاده از روش ساخت رشته به صورت پویا یک رشته SQL تولید میشود که CustomerID با مقدار موجود در txtCustID جایگزین میشود. در شرایط عادی کاربر شناسه خود را در Box وارد مینماید، برنامه اقدام به جستجو در پایگاه داده نموده و پس از آن نتایج برای کاربر نمایش داده میشود. به عنوان مثال اگر کاربر شناسه ALFKI را وارد نماید نتایجی که برنامه تولید میکند به شرح زیر خواهد بود:
در چنین موردی کاربر میتواند در فرایند تولید عبارت SQL به گونهای دخالت کند که پیام خطا دریافت نماید. اگر خطای تولید شده به درستی در برنامه مدیریت نشود و این پیام به صورت کامل در اختیار کاربر قرار گیرد، اطلاعات بیشتری در خصوص عبارت SQL دراختیار کاربر قرار خواهد گرفت که مقدمه نفوذ به سیستم را فراهم میآورد. به عنوان مثال کاربر میتواند عبارت زیر را وارد نماید: